qbasic

qbasic

QBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學者通用指令代碼)語言的一個變種,由美國微軟公司開發,1991年隨MS-DOS 5.0推出。它不能被編譯成獨立的執行檔,原始碼在集成開發環境(IDE)中先被編譯成中間代碼,然後中間代碼在IDE中被解釋執行。它被設計用來代替GW-BASIC,並被集成在MS-DOS 5.0及其更高版本(包括Windows 95)中。QBASIC基於微軟稍早推出的QuickBASIC 4.5,但去掉了後者的編譯和連線部分。

特點

在windows 8中運行qbasic 在windows 8中運行qbasic

Basic語言是計算機高級語言的一種,它簡單、易學、好用,被廣大計算機用戶所青睞。Basic語言的表達式與數學中的表達式相似,語句與自然語言相仿,極容易被初學者掌握,而Basic語言的最新發展Visual Basic 6.0、7.0,其友好的可視化編程界面、強大的面向對象編程能力及其網上發行和網上查詢的功能,不僅能使用戶方便而輕鬆地編寫出具有任何功能的應用程式,而且更好地適應了網路時代的到來。

現狀

微軟在較新版本的Windows中不再集成QBASIC。不過Windows 98的用戶可以在光碟的\TOOLS\OLDMSDOS目錄中找到它,在Windows 95的光碟中,它存放在\OTHER\OLDMSDOS目錄中。微軟網站對它的技術支持只對MS-DOS的授權用戶有效。

QBASIC擁有一個值得稱道的集成開發環境和一個功能強大的集成調試器,這一切在那個時代讓人耳目一新。直到今天,QBASIC依然是許多面向初學者的編程書籍的主題。

語法

和Quick BASIC類似而又不同於微軟其他BASIC的早期實現版本的是,QBASIC是一種結構化的程式語言。和GW-BASIC相比,QBASIC的主要改進是:

擴充了變數和常量的類型

變數名長度:40個字元

增加了長整型、定長字元型變數

可定義數值常量、字元串常量

提供了新的選擇結構

條件語句

IF <條件> THEN <語句組1> ELSE <語句組2>

多分支語句SELECT

改進了循環結構

增加以下兩個循環語句:

【WHILE循環】

WHILE <條件>

<循環體>

WEND

【DO循環】

DO

WHILE <條件> <循環體>

LOOP

子程式和函式作為單獨的模組

不需要行號

代碼示例(賦值,求和運算,並顯示結果)

在編寫程式時為了節省時間,可以不用寫LET;並且PRINT在編寫程式時直接用“?”代替。有一點非常重要,在參加競賽時,程式第一行必須是CLS!

快捷鍵

QBASIC 7.1快捷鍵:

F5:運行程式及繼續運行被中斷的程式;

Ctrl+Break:中斷正在運行的程式;

Shift+F5:從第一條語句開始重新運行程式;

F4:當程式中斷運行時,查看運行結果螢幕,再按一次F4則切換回代碼螢幕;

F1:獲得幫助。

F2:切換主程式或SUB、FUNCTION。

F9:增加斷點。

Alt+Enter:全螢幕。

Shift+F5:在程式終止時重新從頭執行。

Ctrl+Insert:選定文字後複製到剪下板(Ctrl+C無效)

Shift+Insert:將剪貼簿中的文字貼上。(Ctrl+V無效)

範例

範例1:

菜場上一公斤香菇是7.5元,編一個程式,從鍵盤上輸入重量,計算機自動算出其總價

範例2:

賣西瓜,10千克以下每千克1.4元,10千克以上每千克0.7元,輸入要買多少千克(必須為自然數),輸出需要多少錢。

範例3:

輸入10個字母,比較大小,輸出最大的一個

範例4:

一個遊戲:

這裡有一個超長的畫圖程式:

DRAWTOOL.BAS

CLS

DO

SCREEN 1

SCREEN 0

PRINT TAB(16); "Draw tool"

PRINT STRING$(40, "*")

PRINT "Help:"

PRINT "Press highlighted letter."

FOR I = 1 TO 8

READ S$, S

GOTO PrintHLWord

PrintHLWordBack:

NEXT I

RESTORE

DATA "HorizontalBAR", 1, "UprightBAR", 1, "CrossBARs", 1, "BiasBAR1", 8

DATA "BiasBAR2", 8, "DiagonalBARs", 1, "DiffuseBARs", 2, "Exit", 1

ElseKey:

K$ = INPUT$(1)

SELECT CASE UCASE$(K$)

CASE "H"

GOTO HorizontalBAR

HorizontalBARBack:

CASE "U"

GOTO UprightBAR

UprightBARBack:

CASE "C"

GOTO CrossBARs

CrossBARsBack:

CASE "1"

GOTO BiasBAR1

BiasBAR1Back:

CASE "2"

GOTO BiasBAR2

BiasBAR2Back:

CASE "D"

GOTO DiagonalBARs

DiagonalBARsBack:

CASE "I"

GOTO DiffuseBARs

DiffuseBARsBack:

CASE "E"

END

CASE ELSE

GOTO ElseKey

END SELECT

LOOP

END

PrintHLWord:

IF S = 1 THEN

COLOR 15

PRINT LEFT$(S$, 1);

COLOR 7

PRINT MID$(S$, 2)

ELSE

COLOR 7

PRINT LEFT$(S$, S - 1);

COLOR 15

PRINT MID$(S$, S, 1);

COLOR 7

PRINT MID$(S$, S + 1)

END IF

GOTO PrintHLWordBack

HorizontalBAR:

SCREEN 1

FOR I = 1 TO 200

PSET (I, 100)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO HorizontalBARBack

UprightBAR:

SCREEN 1

FOR I = 1 TO 200

PSET (100, I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO UprightBARBack

CrossBARs:

SCREEN 1

FOR I = 1 TO 200

PSET (I, 100)

PSET (100, I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO CrossBARsBack

BiasBAR1:

SCREEN 1

FOR I = 1 TO 200

PSET (I, I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO BiasBAR1Back

BiasBAR2:

SCREEN 1

FOR I = 1 TO 200

PSET (I, 200 - I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO BiasBAR2Back

DiagonalBARs:

SCREEN 1

FOR I = 1 TO 200

PSET (I, I)

PSET (I, 200 - I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO DiagonalBARsBack

DiffuseBARs:

SCREEN 1

FOR I = 1 TO 200

PSET (I, 100)

PSET (100, I)

PSET (I, I)

PSET (I, 200 - I)

DO: LOOP WHILE INKEY$ = ""

NEXT I

SCREEN 0

GOTO DiffuseBARsBack

路程圖:

CLS

輸入

計算

輸出

END

相關詞條

相關搜尋

熱門詞條

聯絡我們