程序設(shè)計初步
第三部分 QBASIC程序設(shè)計基礎(chǔ)
第一章 軟件設(shè)計基礎(chǔ)知識
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第一節(jié) 計算機(jī)語言
語言是人類進(jìn)行思想交流的工具,人與計算機(jī)之間進(jìn)行交流同樣也需要“語言”——一種能被計算機(jī)識別的專用語言稱為計算機(jī)語言。能被計算機(jī)直接接受的并立即執(zhí)行的語言稱為計算機(jī)語言。只能被計算機(jī)間接接受的經(jīng)翻譯后形成目標(biāo)代碼再執(zhí)行的語言,通常稱為程序設(shè)計語言,包括匯編語言和高級語言。
一. 匯編語言
由于機(jī)器語言不利于計算機(jī)的推廣應(yīng)用,人們利用一些簡短的英文單詞或縮寫來表示指令,以便于理解和記憶。這種用數(shù)字、符號來代替二進(jìn)制代碼的計算機(jī)語言稱為匯編語言。例如,要把一個數(shù)裝入CPU的寄存器里,就用MOV表示,要做加法就用ADD表示,指令順序跳轉(zhuǎn)用JMP表示等。
二. 高級語言
高級語句接近自然語句,一般是用一些簡單的英語單詞或縮寫和數(shù)學(xué)式子來表達(dá)意思,它具有易讀、易寫、易修改,能被方便地移植在不同型號的計算機(jī)上等優(yōu)點(diǎn)。目前國內(nèi)外通用的高級語言很多,比較常見的有BASIC,F(xiàn)ORTRAN,PASCAL,C,COBLE等。它們的特點(diǎn)和應(yīng)用領(lǐng)域各有側(cè)重:FORTRAN語言主要用于科學(xué)計算;PASCAL語言主要用于商業(yè)和數(shù)據(jù)處理;C語言是近年來迅速推廣使用的一種現(xiàn)代語言,既具有高級語言的特點(diǎn)又具有低級語言的許多特點(diǎn),特別適合編寫系統(tǒng)軟件;BASIC語言易學(xué),適合于初學(xué)者。
三. 源程序與目標(biāo)代碼
用高級語言編寫的源程序不能直接被計算機(jī)接收,必須通過“翻譯”將其翻譯成目標(biāo)代碼后才能被計算機(jī)執(zhí)行。“翻譯”高級語言的源程序的方式一般有兩種:解釋型的編譯型。所謂“編譯”是將源程序翻譯成目標(biāo)文件,而“解釋”是將源程序逐行處理,即解釋一行處理一行,再解釋下一行……直到結(jié)束。
BASIC 語言屬于解釋型的,QUICK BASIC 語言是屬于編譯型的。
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第二節(jié) 軟件設(shè)計的步驟
計算機(jī)是一種有效的信息處理機(jī),人們怎樣利用它去處理信息來解決實(shí)際問題呢?
一. 分析問題:首先要對問題進(jìn)行分析,看看這個問題提什么要求,給出了哪些已知條件;要使問題得到解決,需要哪些條件;從給出的已知條件出發(fā),經(jīng)過哪些處理才能最后解決問題而得到結(jié)果。
二. 設(shè)計算法:從已知的數(shù)據(jù)出發(fā),到得出所要求解的結(jié)果,往往需要經(jīng)過一系列的處理過程。對某一特定問題的一組(有限的)求解過程(步驟),就是算法。注意這里的“算法”并不是數(shù)學(xué)中的“計算方法”的縮語,我們所說的“算法”只包含有限的步驟,而計算方法有時是個無限過程。算法不僅是指“數(shù)學(xué)運(yùn)算”,也指根據(jù)需要而進(jìn)行的邏輯判斷。
三. 畫出框圖:框圖也叫流程圖。由于應(yīng)用計算機(jī)問題時的算法一般比較復(fù)雜,故常用一種人為約定的圖形符號把采用的算法描繪出來,用框圖可以把解決問題的思路,如要進(jìn)行的數(shù)學(xué)運(yùn)算、邏輯判斷等清晰、形象、直觀地表示出來,為下面的工作打下良好的基礎(chǔ)。
四. 編寫程序:目前,計算機(jī)只能接受并執(zhí)行用計算機(jī)語言編寫的程序。所以,編寫程序就是用機(jī)器語言、匯編語言或高級語言,根據(jù)相應(yīng)的語言法則用一條條語句(命令)形式把框圖所表示的算法表達(dá)出來。
五. 上機(jī)調(diào)試:編寫好的程序,要輸入到計算機(jī)。由于在編寫或輸入過程中,往往會發(fā)生一些錯誤,計算機(jī)在執(zhí)行程序時由于這些錯誤,自然得不出預(yù)期的結(jié)果,這變需要進(jìn)行修改以排除程序中錯誤。要注意的是,計算機(jī)會自動找出一些語法方面的錯誤,數(shù)據(jù)的錯誤,如數(shù)30被改成了80,以及邏輯性的錯誤,計算機(jī)就無能為力了。
【練習(xí)】(理論知識或常識):
1. 計算機(jī)語言是 [黃澤民1] 。
2. 程序設(shè)計語言一般包括 [黃澤民2] 。
3. 匯編語言是指 [黃澤民3] 。
4. 軟件設(shè)計的基本步驟是 、 、 、 、 [黃澤民4] 。
參考資料(教科書第114頁):編程語言的演變 。
第二章BASIC 的基本常識
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
BASICJ 是英文“Beginers All-purpose Symbolic Instruction Code”的縮寫,意思是:初學(xué)者通用符號指令代碼。在1964年美國初次采用BASIC,僅僅是為了培養(yǎng)初學(xué)者,后來內(nèi)容不斷補(bǔ)充,短短幾年就以它表達(dá)能力強(qiáng)、容易掌握、使用方便、應(yīng)用廣泛的特色而風(fēng)靡全球。
BASIC又是流行的常用高級語言之中的一種。新穎的、功能更強(qiáng)大的高級語言不斷產(chǎn)生,而古老的BASIC也在不斷地得到更新和發(fā)展。目前BASIC的家庭已發(fā)展成最為龐大的高級語言之一。它由原來的解釋型BASIC 如:BASIC、GWBASIC等,發(fā)展成為編譯型BASIC如:QUICKBASIC、TRUEBASIC等。且各種BASIC都有不同的版本。作為中學(xué)階段的教材,本書介紹的是DOS5.0(或是更高版本)提供的QBASIC。
第一節(jié) BASIC 的特點(diǎn)
BASIC 有以下特點(diǎn):
1. 單易學(xué) BASIC所使用的命令、語句中的詞匯和符號十分接近英語和數(shù)學(xué)語言,因此初學(xué)者易于理解、記憶和掌握。
2. 具有“人機(jī)對話”功能 使用者和計算機(jī)可以互相“交談”、彼此提問和回答,計算機(jī)能把使用者所出現(xiàn)的錯誤及出錯的原因通過顯示器告訴使用者,便于使用者在鍵盤上進(jìn)行修改,直到雙方滿意為止。這樣對程序語句逐句地邊算邊改的方式,對于編程不太熟悉的初學(xué)者,是十分方便的。
3. 實(shí)用性較強(qiáng) BASIC不僅能用于科技方面的數(shù)值計算,而且在數(shù)據(jù)處理方面也有相當(dāng)?shù)哪芰,特別是科技計算和事務(wù)管理中的小型題目,使用BASIC也是很方便的。在過程控制及輔助教學(xué)等方面,也能看到不少BASIC的應(yīng)用。
第二節(jié) QBASIC 的工作環(huán)境
QBASIC將程序的編輯、運(yùn)行及文件管理等工作融為一體,提供了一個集成化的編程環(huán)境。
一. BASIC系統(tǒng)的啟動
啟動QBASIC系統(tǒng),首先得進(jìn)入 MS-DOS。有兩種方式:一種是在Windows環(huán)境下的啟動方式,另一種是在DOS下的啟動方式。
(一) Windows方式下有兩種方式啟動QBASIC方式
1. Windows操作系統(tǒng)的桌面上,用鼠標(biāo)點(diǎn)擊“開始”菜單欄,點(diǎn)擊桌面圖形出現(xiàn)中的“程序”欄,點(diǎn)擊其后出現(xiàn)的“MS-DOS”,進(jìn)入MS-DOS方式。此時在屏幕上出現(xiàn)C:\ windows>_,請輸入 cd \dos(或QBASIC所在的目錄)回車。然后輸入QBASIC回車即可。
2. Windows操作系統(tǒng)的桌面上,用鼠標(biāo)點(diǎn)擊“開始”菜單欄,點(diǎn)擊桌面圖形出現(xiàn)中的“關(guān)閉系統(tǒng)”欄,點(diǎn)擊“重新啟動計算機(jī)并切換到MS-DOS方式”,計算機(jī)重新啟動,啟動后屏幕出現(xiàn) C:\windows>_,請輸入 cd \dos(或QBASIC所在的目錄)回車。然后輸入QBASIC回車即可。
(二) DOS下啟動QBASIC
將載有DOS啟動系統(tǒng)并包含有QBASIC.EXE和QBASIC.HLP 兩個文件的磁盤插入軟盤驅(qū)動器,然后開機(jī)啟動DOS系統(tǒng)。DOS系統(tǒng)啟動成功后,屏幕上將會出現(xiàn)提示符,在提示符后面鍵入:QBASIC并回車就能進(jìn)入QBASIC的工作環(huán)境(如下圖)。
QBASIC編程環(huán)境是通過菜單式選項來選擇操作命令的。
二. 菜單命令的使用
在屏幕頂部的主菜單中有8類操作命令,對應(yīng)8個下拉式菜單,每個下拉菜單中又有多個具有操作命令,選擇了某一個具體操作命令就會進(jìn)行相應(yīng)的操作。其選擇具體命令的操作如下:
先按住Alt鍵不放,再按單詞的第一個字母,相應(yīng)的下拉菜單就會出現(xiàn),用光標(biāo)鍵選擇要執(zhí)行的具體命令,然后按回車鍵,就可以執(zhí)行該命令。
例如,同時按Alt和F鍵,就會出現(xiàn)File(文件)類下拉菜單,此時要退出QBASIC 系統(tǒng),將光標(biāo)移至Exit按回車鍵或直接按x鍵,就會退出QBASIC系統(tǒng)返回到DOS方式。
三. 即執(zhí)行方式
QBASIC程序有程序方式和立即方式兩種方式。
立即方式是在立即執(zhí)行窗口中輸入一條語句后,按F6鍵就會切換到下面的立即執(zhí)行窗口。
例如,在Immediate(立即執(zhí)行)窗口中輸入PRINT 4*5
按回車鍵后,轉(zhuǎn)到“輸出屏幕”顯示處理結(jié)果:20。
按任意鍵后將返回Immediate窗口。
再按F6鍵,將回到編輯窗口。
本章的重點(diǎn)是讓學(xué)生熟悉、了解和掌握QBASIC的編程窗口,掌握各菜單的使用,能用鍵盤則不用鼠標(biāo)去操作,要反復(fù)操作。
第三章QBASIC 的基本概念
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第一節(jié) 什么是QBASIC程序
什么是QBASIC程序?QBASIC程序是什么樣的?是怎樣構(gòu)成的?
程序是人們?yōu)榱私鉀Q某不問題而設(shè)計編寫的指揮計算機(jī)運(yùn)行的一系列指令或語句。QBASIC程序就是用QBASIC編制的程序,也稱為QBASIC源程序。我們先看一個用QBASIC編寫的簡單程序:
i. 求長、寬分別是6.8, 3.5的矩形的周長和面積。
用QBASIC編寫的程序如下(右邊是語句的意思):
LET A=6.8 將數(shù)6.8送入變量A中
LET B=3.5 將數(shù)3.5送入變量B中
LET L=(A+B)*2 將A與B的2倍送入變量L中
LET S=A*B 將A與B的積送入變量S中
PRINT L,S 顯示輸出L及S的值
END 結(jié)束
從這個簡單程序我們可以看出:QBASIC十分接近人的自然語言和數(shù)學(xué)語言,只是個別符號的含義有所不同。
通過上面這個程序,可以看出BASIC程序是這樣構(gòu)成的:
一個BASIC程序由若干程序行組成。一個程序行由語句和回車兩個部分或由冒號隔開的多個語句、回車組成,即程序行的構(gòu)成是:
語 句 回車 (如上面程序中的第一行)
LET A=6.8 ↙
一、 語句
語句是程序行的核心,每個語句指定執(zhí)行某一方面的特定功能。一個語句由語句定義符和語句體組成。
1. 語句定義符:由英文單詞或縮寫詞等英文符號組成。用來確定它所在的語句的功能。除了個別特殊的語句定義符可以省略外,語句不可沒有定義符,否則機(jī)器不能執(zhí)行該語句并顯示出錯信息。上面程序中的LET、PRINT和END都是語句定義符。
2. 語句體:為語句操作的具體內(nèi)容和對象,跟在語句定義符的后面。
不是每個語句都有語句體,有些語句就只有語句定義符,END.
也可將若干個語句寫成一個程序行,各語句間用“:”隔開,形成多語句行,即
語句1 : 語句2 : … : 語句n
上面的例1程序可以寫成:
LET A=6.8:LET B=3.5:LET L=(A+B)*2:LET S=A*B
PRINT L,S:END
這樣可以節(jié)省書寫行。
使用多語句行時應(yīng)注意:
(1) 多語句行中語句執(zhí)行順序是從左到右逐個執(zhí)行,將多個語句放在一個程序行時,一定要留心不要改變它們的執(zhí)行順序,否則程序?qū)䦂?zhí)行出意料之外的情況。
(2) 每程序行的長度有一定限制,在QBASIC中,一個程序行的長度最多不能超過255個字符(含↙⊔)
二、 回車
只有當(dāng)我們輸入回車鍵后計算機(jī)才接收從鍵盤上輸入的任何信息。當(dāng)我們輸完語句時必須用回車作結(jié)束。一個QBASIC程序,實(shí)際上是由若干條語句按照人們所要解決問題的步驟順序組合而成的。
第二節(jié) QBASIC的符號系統(tǒng)
任何一種計算機(jī)語言都有它自己特定的基本符號,在使用中,不允許出現(xiàn)非規(guī)定的符號,否則,將不被接受。QBASIC的符號系統(tǒng)則由英文大小寫字母、10個阿拉伯?dāng)?shù)字和一些特殊符號組成。
ii. 阿拉伯?dāng)?shù)字:0 1 2 3 4 5 6 7 8 9
iii. 大小寫英文字母: A B … Z, a b … z
iv. 符號.符號可分為4種:
1. 運(yùn)算符號(加減乘除、乘方):+ — * / ^ = ( )
2. 點(diǎn)符號:逗號,分號; 小數(shù)點(diǎn). 問號? 單引號‘’
3. 關(guān)系符號:= < > <> >= <=
4. 專用符號:串變量$ 整型變量% 格式# 空格⊔
第三節(jié) 常量和變量
一. 常量(在程序執(zhí)行過程中,值始終保持不變的量)
QBASIC中的常量分為兩類:數(shù)值型常量和字符型常量
1.量有正負(fù)數(shù)之分,負(fù)號不能省略?梢杂腥缦聨追N表達(dá)方式:
(2) 整數(shù)。又稱整型數(shù),不能含有小數(shù)點(diǎn)。
(3) 定點(diǎn)數(shù),只用數(shù)字、小數(shù)點(diǎn)和正負(fù)號來表示的數(shù)。
(4) 浮點(diǎn)數(shù):在定點(diǎn)表示的基礎(chǔ)上增加指數(shù)來表示的方法。其實(shí)質(zhì)是數(shù)學(xué)中科學(xué)記數(shù)法:2E3。浮點(diǎn)數(shù)由尾數(shù)、底數(shù)E和階碼三部分組成,其中尾數(shù)表示數(shù)的有效部分,E表示冪的底數(shù)為10,階碼表示冪的指數(shù)。
由于受機(jī)器的限制,多數(shù)QBASIC只允許使用絕對值在2.9*10-39至1.7*1038之間的實(shí)數(shù),如果數(shù)的絕對值小于前者視為0,大于后者則溢出。
2. 字符型常量,用于對非數(shù)值的字符進(jìn)行處理。字符型常量的長度不超過255個字符。
二.變量:在程序執(zhí)行過程中值可以改變的量。分為數(shù)值變量(用于存放數(shù)值常量)和字符串變量(用于存放字符型常量)。用英文字母表示數(shù)值變量: A ,B,AN 等。用A$, B$, A1$等表示字符串變量。變量名的前40個字母是有效的,超過則被計算機(jī)忽略掉了,不能用保留字作變量名。
第四節(jié) 數(shù)值函數(shù)和數(shù)值表達(dá)式
一. 數(shù)值函數(shù)
在QBASIC中,把一些常用的算法編成一個個標(biāo)準(zhǔn)程序放在QBASIC解釋程序中,稱為標(biāo)準(zhǔn)函數(shù),編寫程序時,只要按規(guī)定寫出函數(shù)名及自變量就可以隨時調(diào)用。按照這些函數(shù)的不同用途,可分為數(shù)值函數(shù)和字符串函數(shù),本書只介紹數(shù)值函數(shù)。
SIN(X) COS(X) TAN(X) SQR(X)
ABS(X) INT(X) RND(X)
二. 數(shù)值表達(dá)式
用QBASIC的運(yùn)算符和括號把常量、變量及函數(shù)按QBASIC規(guī)定連接起來構(gòu)成的式子,稱為QBASIC表達(dá)式。能夠產(chǎn)生一個數(shù)字值的QBASIC表達(dá)式稱為數(shù)值表達(dá)式。
實(shí)際上QBASIC數(shù)值表達(dá)式一般就是按QBASIC符號系統(tǒng)的規(guī)定表示的數(shù)學(xué)式子。
表達(dá)式中的運(yùn)算順序:從高到低執(zhí)行。
書寫表達(dá)式時需要注意的若干問題
第五節(jié) 程序的輸入和運(yùn)行
要讓計算機(jī)運(yùn)行一段程序,首先必須把這段程序輸入到計算機(jī)中去,下面學(xué)習(xí)程序的輸入和修改的方法。
一. 從鍵盤輸入程序。啟動QBASIC系統(tǒng),并確認(rèn)光標(biāo)是在編輯窗口后,就可以輸入QBASIC程序了,輸入的方法是按照程序清單在鍵盤上逐個敲入每一字符,敲完一行語句后,按一下回車鍵。每一次按回車鍵后,計算機(jī)就把所輸入的這一行內(nèi)容存放到內(nèi)存儲器里了。同時光標(biāo)移到下一行的最左端,等待接收下一行要敲入的內(nèi)容。
二. 程序的運(yùn)行。輸入的程序經(jīng)檢查無誤后,就可以運(yùn)行了。運(yùn)行程序的操作方法:利用下拉菜單,即同時按下Alt鍵和R鍵,出現(xiàn)Run類下拉菜單,選擇Start并按回車鍵,就可運(yùn)行程序;另一種方法是在編輯窗口中同時按下Shift鍵 和F5鍵,就可以運(yùn)行程序了。
第四章 輸出語句與終止語句
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
從本節(jié)開始,學(xué)習(xí)十幾條QBASIC語句的格式和功能,也將懂得程序的結(jié)構(gòu)和掌握一些最基本的算法,并熟悉用它編寫程序。
第一節(jié) 輸出語句(PRINT)
用計算機(jī)來解決各種問題,必然希望計算機(jī)輸出處理后的結(jié)果,語句PRINT就是用來起這種作用的。它是QBASIC中使用最頻繁、用法最靈活的一條語句。正確使用PRING語句,不僅可以輸出計算結(jié)果,還可以輸出文字、繪制各種圖表。
一. 格式
PRINT < 輸出內(nèi)容>
例如: PRINT 3 PRINT “QBASIC”
二. 功能
PRINT語句的功能是將<輸出內(nèi)容>顯示在顯示器上或在打印機(jī)的打印出來。輸出的內(nèi)容分為兩類:數(shù)值和字符串。
輸出常量、變量或算術(shù)表達(dá)式的值
字符串原樣輸出
三. PRINT語句的輸出格式:
1標(biāo)準(zhǔn)輸出格式:
如果PRINT語句的表達(dá)式組中各項用“,”分隔,那么輸出顯示的時候按標(biāo)準(zhǔn)格式輸出,每行輸出定為5個標(biāo)準(zhǔn)打印位置。如果在一個打印語句中的變量多于5 個,則計算機(jī)在打印完5 個數(shù)之后,就自動換到第二行的第一個標(biāo)準(zhǔn)位置開始打。蝗绻蛴(shù)據(jù)長度超過了當(dāng)前所具有的字符位置個數(shù),那么這個數(shù)據(jù)將從下一行的起點(diǎn)開始打印。
2緊湊輸出格式:
如果PRINT語句的表達(dá)式組中各項用“;”分隔,那么輸出顯示的時候按緊湊格式輸出。也就是各項之間沒有空格。
3 PRINT語句末尾標(biāo)點(diǎn)符號的作用:
PRINT 語句末尾沒有標(biāo)點(diǎn)符號時,計算機(jī)執(zhí)行完成這個語句后將自動換行;當(dāng)PRINT語句以“,”或“;”結(jié)束時,不產(chǎn)生換行操作,下一條PRINT語句所輸出的內(nèi)容將按標(biāo)準(zhǔn)格式或緊湊格式繼續(xù)輸出顯示。
4 空PRINT語句的作用:
當(dāng)print語句中不含任何表達(dá)式時,稱為空PRINT 語句,它只輸出一個空行(只起換行作用),利用空PRINT語句,可以加大行與行之間的距離,或者解除前面PRINT語句末尾的“,”或“;”的不換行作用。
第二節(jié) 終止語句(END語句)
一個完整的程序應(yīng)該有終止語句。終止語句一般放在程序的末尾。
1 格式:END
2 功能: 使計算機(jī)停止該程序的運(yùn)行。
第五章 提供數(shù)據(jù)的語句
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第六章 轉(zhuǎn)向語句
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第七章 循環(huán)語句
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
第八章 一維數(shù)組
【教學(xué)目的】
【教學(xué)重點(diǎn)、難點(diǎn)】
【教學(xué)過程】
[黃澤民1]能被計算機(jī)直接接受的并立即執(zhí)行的語言稱為計算機(jī)語言
[黃澤民2]包括匯編語言和高級語言
[黃澤民3]用數(shù)字、符號來代替二進(jìn)制代碼的計算機(jī)語言
[黃澤民4]1.分析問題; 2.設(shè)計算法: 3.畫出框圖; 4.編寫程序; 5.上機(jī)調(diào)試。