王華國(guó)
基本算法語句和大學(xué)內(nèi)容聯(lián)系得非常緊密,學(xué)好了這一節(jié),再進(jìn)入大學(xué)之后學(xué)習(xí)C語言就會(huì)輕松許多.當(dāng)然我們高中生需要掌握的內(nèi)容非常少,相對(duì)于大學(xué)內(nèi)容來說也比較簡(jiǎn)單.這一節(jié)主要就包含了幾個(gè)基本語句:輸入輸出語句、賦值語句、條件語句、循環(huán)語句等.
一、輸入、輸出語句
輸入語句 (1)輸入語句要求輸入的值只能是具體的常數(shù),不能是函數(shù)、變量或表達(dá)式;(2)提示內(nèi)容與變量之間用分號(hào)“;”隔開,若輸入多個(gè)變量,變量與變量之間用逗號(hào)“,”隔開.
輸出語句 (1) “提示內(nèi)容”提示用戶輸入什么樣的信息,表達(dá)式是指程序要輸出的數(shù)據(jù);(2)輸出語句可以輸出常量、變量或表達(dá)式的值以及字符.
例1 寫出已知函數(shù)[y=1(x>0),0(x=0),-1(x<0),] 輸入[x]的值,求[y]的值的程序.
解析 程序?yàn)椋?/p>
二、賦值語句
(1)賦值語句中的“=”稱作賦值號(hào),與數(shù)學(xué)中的等號(hào)的意義是不同的.賦值號(hào)的左右兩邊不能對(duì)換,它將賦值號(hào)右邊的表達(dá)式的值賦給賦值號(hào)左邊的變量;(2)賦值語句左邊只能是變量名字,而不是表達(dá)式,右邊表達(dá)式可以是一個(gè)數(shù)據(jù)、常量或算式;(3)對(duì)于一個(gè)變量可以多次賦值.
例2 (1)①給一個(gè)變量重復(fù)賦值.
②在此程序的基礎(chǔ)上,設(shè)計(jì)一個(gè)程序,要求最后A的輸出值是30.
(2)交換兩個(gè)變量A,B的值,并輸出交換前后的值.
分析 引入一個(gè)中間變量X,將A的值賦予X,又將B的值賦予A,再將X的值賦予B,從而達(dá)到交換A,B的值.(比如交換裝滿水的兩個(gè)水桶里的水需要再找一個(gè)空桶)
(1)①程序:
②該變式的設(shè)計(jì)意圖是加深對(duì)重復(fù)賦值的理解.
程序:
三、條件語句
條件語句的一般格式有兩種:(1)IF—THEN—ELSE語句;(2)IF—THEN語句.
例3 編寫程序,輸入一元二次方程[ax2+bx+c=0]的系數(shù),輸出它的實(shí)數(shù)根.
分析 先把解決問題的思路用程序框圖表示出來,然后再根據(jù)程序框圖給出的算法步驟,逐步把算法用對(duì)應(yīng)的程序語句表達(dá)出來.
我們知道,若判別式[Δ=b2-4ac>0],原方程有兩個(gè)不相等的實(shí)數(shù)根[x1=-b+Δ2a],[x2=-b-Δ2a];若[Δ=0],原方程有兩個(gè)相等的實(shí)數(shù)根[x1=x2=-b2a];若[Δ<0],原方程沒有實(shí)數(shù)根.也就是說,在求解方程之前,需要判斷判別式的符號(hào).因此,這個(gè)過程可以用算法中的條件結(jié)構(gòu)來實(shí)現(xiàn).
又因?yàn)榉匠痰膬蓚€(gè)根有相同的部分,為了避免重復(fù)計(jì)算,可以在計(jì)算[x1]和[x2]之前,先計(jì)算[p=-b2a],[q=Δ2a].
解 程序框圖:(參照課本[P17])
注:SQR( )和ABS( )是兩個(gè)函數(shù),分別用來求某個(gè)數(shù)的平方根和絕對(duì)值.
即 [SQR(x)=x],[ABS(x)=x(x≥0),- x(x<0).]
例4 編寫程序,使得任意輸入的3個(gè)整數(shù)按從大到小的順序輸出.
分析 用[a,b,c]表示輸入的3個(gè)整數(shù);為了節(jié)約變量,把它們重新排列后,仍用[a,b,c]表示,并使[a≥b≥c].具體操作步驟如下.
第一步:輸入3個(gè)整數(shù)[a,b,c].
第二步:將[a]與[b]比較,并把小者賦給[b],大者賦給[a].
第三步:將[a]與[c]比較,并把小者賦給[c],大者賦給[a],此時(shí)[a]已是三者中最大的.
第四步:將[b]與[c]比較,并把小者賦給[c],大者賦給[b],此時(shí)[a,b,c]已按從大到小的順序排列好.
第五步:按順序輸出[a,b,c].
解 程序框圖:(參照課本[P19])
點(diǎn)撥 條件語句使程序執(zhí)行產(chǎn)生的分支,根據(jù)不同的條件執(zhí)行不同的路線,使復(fù)雜問題簡(jiǎn)單化.有些復(fù)雜問題可用兩層甚至多層循環(huán)解決.注意內(nèi)外層的銜接,可以從循環(huán)體內(nèi)轉(zhuǎn)到循環(huán)體外,但不允許從循環(huán)體外轉(zhuǎn)入循環(huán)體內(nèi).條件語句一般用在需要對(duì)條件進(jìn)行判斷的算法設(shè)計(jì)中,如判斷一個(gè)數(shù)的正負(fù),確定兩個(gè)數(shù)的大小等問題,還有求分段函數(shù)的函數(shù)值等,往往要用條件語句,有時(shí)甚至要用到條件語句的嵌套.
四、循環(huán)語句
循環(huán)語句的一般格式有兩種:(1)DO-UNTIL語句;(2)WHILE語句.
例5 編寫程序,計(jì)算自然數(shù)1+2+3+…+99+100的和.
分析 這是一個(gè)累加問題.我們可以用WHILE型語句,也可以用UNTIL型語句.由此看來,解決問題的方法不是惟一的,當(dāng)然程序的設(shè)計(jì)也是有多種的,只是程序簡(jiǎn)單與復(fù)雜的問題.
解 程序:
WHILE型:
點(diǎn)撥 循環(huán)語句主要用來實(shí)現(xiàn)算法中的循環(huán)結(jié)構(gòu),在處理一些需要反復(fù)執(zhí)行的運(yùn)算任務(wù),如常用于累加求和、累乘求積等問題中.編程一般的步驟:先寫出算法,再進(jìn)行編程.