QBASIC是BASIC(Beginner's All-purpose Symbolic Instruction Code,初學(xué)者通用指令代碼)語言的一個變種,由美國微軟開發(fā),1991年隨MS-DOS 5.0推出。它不能被編譯成獨立的可執(zhí)行文件,源代碼在集成開發(fā)環(huán)境(IDE)中先被編譯成中間代碼,然后中間代碼在IDE中被解釋執(zhí)行。它被設(shè)計用來代替gw-basic,并被集成在MS-DOS 5.0及其更高版本(包括Windows 95)中。QBASIC基于微軟稍早推QuickBASIC 4.5,但去掉了后者的編譯和連接部分。
現(xiàn)狀和特點
微軟在較新版本的Windows中不再集成QBASIC。不過Windows 98的用戶可以在光盤\\TOOLS\\OLDMSDOS目錄中找到它,在Windows 95的光盤中,它存放在\\OTHER\\OLDMSDOS目錄中。微軟網(wǎng)站對它的技術(shù)支持只對MS-DOS的授權(quán)用戶有效。
QBASIC擁有一個值得稱道的集成開發(fā)環(huán)境和一個功能強大的集成調(diào)試器,這一切在那個時代讓人耳目一新。直到今天,QBASIC依然是許多面向初學(xué)者的編程書籍的主題。
改進
和Quick BASIC類似而又不同于微軟其他BASIC的早期實現(xiàn)版本的是,QBASIC是一種結(jié)構(gòu)化的編程語言。和gw-basic相比,QBASIC的主要改進是:
擴充了變量和常量的類型
變量名長度:40個字符
增加了長整型、定長字符型變量
可定義數(shù)值常量、字符串常量
子程序和函數(shù)作為單獨的模塊
不需要行號
注:Quick BASIC簡稱QB,是一種編譯型的語言;qbasic是一種解釋型的語言,和Quick BASIC擁有一樣的語法。同時,為了省時間,QBASIC中的PRINT 語句可以直接用?來代替。
常見語法
條件語句
行if語句: IF 條件 THEN 語句組 ELSE 語句組2
塊if語句
IF 條件 THEN
語句組
ELSE
語句組2
END IF
IF 語句還可如此運用
IF 條件 THEN
語句組
ELSEIF 條件 THEN
語句組2
END IF
多分支語句SELECT用法:
SELECT CASE 變量或字符串
CASE 情況1
語句組
CASE 情況2
語句組2
END SELECT
循環(huán)結(jié)構(gòu)語句
1.計數(shù)循環(huán)
for 控制變量=初值 to 終值
語句體
next 控制變量
2.當(dāng)型循環(huán)
其格式有兩種:
(1)
WHILE 條件
循環(huán)體
WEND
(2)
DO WHILE 條件
循環(huán)體
3.直到型循環(huán)
DO
循環(huán)體
LOOP UNTIL 條件
基本語句
輸入語句:input“顯示的內(nèi)容”,變量名表
或者“,”改為“;”,改完之后輸入時會多出一個“?”
輸出語句:print “顯示的內(nèi)容”,變量名表1,“顯示的內(nèi)容”,變量名表2……
把,改為;時,兩個內(nèi)容間空1格,否則空14格左右,最后不加分號為換行。
賦值語句:
一維數(shù)組的定義:dim 變量名(下標(biāo))
二維數(shù)組的定義:dim 變量名(下標(biāo)1,下標(biāo)2)
代碼示例(賦值,求和運算,并顯示結(jié)果)
A=10
B=20
C=A+B
Print C
END
變量
變量長度小于等于40,不允許出現(xiàn)關(guān)鍵詞,如Let
數(shù):如15%、-32768、215654#、2.0158e+15、8.545646d+20、-18.75等,變量名為例如a的變量名
字符串:如“15%”、“abc”等,變量名為例如a$的變量名
補充:在QB中還可以幾何畫圖,具體用法如下(詳見QB內(nèi)部幫助)
SCREEN 12'639*479 16色圖形模式
CIRCLE(100,150),10,4'在x坐標(biāo)100與y坐標(biāo)150處畫一個半徑為10的顏色為4(紅色)的圓。
SYSTEM
簡單的雙重循環(huán)在冒泡排序程序的運用
DIM n AS INTEGER
INPUT n
DIM a(n)
FOR i = 1 TO n
INPUT a(i)
樂華七子NEXT i
FOR i = 1 TO n
FOR j=1 TO i-1
IF a(j) > a(j+1) THEN SWAP a(j), a(j+1)
NEXT j
NEXT i
FOR i = 1 TO n
PRINT a(i)
NEXT i
END
幾種常見的運算語句及函數(shù)
加運算:
AB之和=A+B
差運算:
AB之差=A-B
乘運算:
AB之積=A*B
除運算
AB商=A/B
乘方運算
A的B次方=A^B
開方運算
A開方=SQR(A)
交換變量
SWAP 值A(chǔ),值B
初學(xué)者的練習(xí)題
1、輸入20個數(shù),求出它們的最大值、最小值和平均值。
2、在1——500中,找出能同時滿足用3除余2,用5除余3,用7除余2的所有整數(shù);
3、如果一個數(shù)從左邊讀和右邊讀都是同一個數(shù),就稱為回文數(shù),例如686就是一個回文數(shù)?喑糖?000以內(nèi)所有的回文數(shù)。
4、已知數(shù)列1、5、12、22、35、...?求出第20個數(shù)
5、輸入一個大于1的整數(shù),打印出它的素數(shù)分解式。如輸入75,則打印:"75=3*5*5"。
6、輸入10個正整數(shù),計算它們的和,平方和;
7、輸入20個整數(shù),統(tǒng)計其中正、負和零的個數(shù);
8、輸出1——999中能被3整除,且至少有一位數(shù)字是5的數(shù);
9、有一個六位數(shù),其個位數(shù)字7,現(xiàn)將個位數(shù)字移至首位(十萬位),而其余各位數(shù)字順序不變,得到一個新的六位數(shù),假如新數(shù)為舊數(shù)的4倍,求原來的六位數(shù)。
10、有這樣的一個六位數(shù)字labcde,將其乘以3后變成abcdel,編程求這個數(shù)。
11、試找出6個小于160而成等差數(shù)列的素數(shù)。
1-1/3+1/5-1/7+……直到某一項的絕對值小于10的-6次方
附加:
我們用一個正整數(shù)列來表示一段地方的高度,當(dāng)一段地方的高度為一個逐一上升的序列時,
我們稱它為一個階梯,例如 4、5、6、7、8 是一個長度為 5 的階梯。現(xiàn)在給定一個正整數(shù)列,
請找出它第一個最長的階梯,并將其輸出。如果一個階梯也沒有,輸出“No”。
運行結(jié)果示例:
請輸入數(shù)列的長度:8
請輸入數(shù)列:2 3 2 3 4 4 5 6
結(jié)果為 2 3 4
快捷鍵
Ctrl+C+Break:中斷正在運行的程序;
F5:運行程序;
Shift+F5:從第一條語句開始重新運行程序;
F4:當(dāng)程序中斷運行時,查看運行結(jié)果屏幕,再按一次F4則切換回代碼屏幕;
一級方程式錦標(biāo)賽:獲得幫助。
F8:單步運行
F9:斷點(同QB stop 語句,按F5繼續(xù)運行)
范例
【1】菜場上一公斤香菇是7.5元,編一個程序,從鍵盤上輸入重量,計算機自動算出其總價
INPUT X
zj=7.5*X
PRINT zj
END
【2】高精度乘法程序
INPUT a$
INPUT b$
la = LEN(a$)
lb = LEN(b$)
lc = la + lb
DIM a(la), b(lb), c(lc)
FOR i = 1 TO la
a(i) = VAL(MID$(a$, la + 1 - i, 1))
樂華七子NEXT i
FOR i = 1 TO lb
b(i) = VAL(MID$(b$, lb + 1 - i, 1))
NEXT i
FOR i = 1 TO la
FOR j = 1 TO lb
x = a(i) * b(j): w = i + j - 1
c(w) = c(w) + x MOD 10
c(w + 1) = c(w + 1) + c(w) \ 10 + x \ 10
c(w) = c(w) MOD 10
樂華七子NEXT j
NEXT i
DO WHILE c(lc) = 0
lc = lc - 1
FOR i = lc TO 1 STEP -1
PRINT USING "#"; c(i);
NEXT i
END
參考資料 >