錯解剖析得真知

2022-01-04 06:34:29 字數 2996 閱讀 4695

錯解剖析得真知(三十九)

§13.2基本演算法語句

一、知識導學

1. 賦值語句用符號「←」表示,「」表示將的值賦給,其中是乙個變數,是乙個與同型別的變數或表示式.

2. 條件語句主要有兩種形式:「行if 語句」和「塊if語句」.

「行if 語句」的一般形式為:

if a then b [else c] .

乙個行if 語句必須在一行中寫完,其中方括號中的else部分可以預設.

「塊if 語句」的一般格式為:

if a then

b else

cend if

then 部分和 else 部分是可選的,但塊if語句的出口「end if」不能省.

3. 迴圈語句主要有兩種型別:for語句和while語句.

當迴圈的次數已經確定,可用「for」語句表示.「for」語句的一般形式為:

for i from「初值」 to step「步長」… end for

上面「for」和「end for」之間縮排的步驟稱為迴圈體.

當迴圈次數不能確定是,可用「while」語句來實現迴圈.「while」語句的一般形式為:

while a

…end while

其中a表示判斷執行迴圈的條件.

上面「while」和「end while」之間縮排的步驟稱為迴圈體.

二、疑難知識導析

1. 有的條件語句可以不帶「else」分支,即滿足條件時執行b,否則不執行任何操作.條件語句也可以進行巢狀,在進行條件語句的巢狀時,書寫要有層次.例如:

if a then

belse if c then

delse

eend if

2.「for」語句是在執行過程中先操作,後判斷.而「while」語句的特點是「前測試」,即先判斷,後執行.

若初始條件不成立,則一次也不執行迴圈體中的內容.任何一種需要重複處理的問題都可以用這種前測試迴圈來實現.

三、經典例題導講

[例1] 下列程式的執行結果是

if >5 then

if >4 then

if >3 then

print

錯解:8+7=15

錯因:誤認為在乙個程式中只執行乙個條件語句,與在乙個條件語句中只選擇其中乙個分支相混淆.if a then b [else c] 若滿足條件a 則執行b,否則是執行c,b和c是這個條件語句的分支,而這個程式省略了else部分.

正解:這裡是有三個條件語句,各個條件語句是獨立的,三個條件均成立,所以按順序依次執行,結果為8+7+6+6=27.

[例2] 下面的偽**的效果是

while <10

end while

end錯解:執行10次迴圈

錯因:將for語句和while語句混淆. for語句中有步長使迴圈變數不斷變化,而while語句則無.

正解:無限迴圈下去,這是因為這裡始終為0,總能滿足條件「」,故是乙個「死迴圈」.

點評:「死迴圈」是設計迴圈結構的大忌,此題可改變的初始值或每一次迴圈都增加乙個值.

[例3]下面的程式執行時輸出的結果是( )

while

end while

print s

end錯解:第一次迴圈時,i被賦予2,s被賦予4;第二次迴圈時,i被賦予3,s被賦予4+=13;第三次迴圈時,i被賦予4,s被賦予13+=29;第四次迴圈時,i被賦予5,s被賦予.由於此時,故迴圈終止,輸出s為54.

正解:由於在迴圈內,每經過一次迴圈後s都被賦值0,因此,只要求滿足條件的最後一次迴圈s的值,即當時,.

[例4]用語句描述求使成立的最大正整數的演算法過程.

解:while

end while

print

點評:此題易錯的是輸出值,根據while迴圈語句的特徵當時跳出迴圈體,此時的值是時的最小的整數,則使的最大整數應為的前乙個奇數即.

[例5]已知當時,,當時,,當時,,設計一演算法求的值.

解: read x

if then

else if then

else

end if

end點評:巢狀if語句可用如上的緊湊形式書寫,要注意的是如不是採取緊湊形式,則需注意乙個塊if語句對應乙個end if,不可省略或缺少.

[例6]設計乙個演算法,使得輸入乙個正整數,輸出1!+2!+3!+…+!的值.寫出偽**.

解:思路一:利用單迴圈,迴圈體中必須包括乙個求各項階乘的語句以及乙個求和語句.

read n

for i from 1 to n

end for

print s

思路二:運用內外雙重迴圈,但尤其注意的是每一次外迴圈t的值都要從1開始.

read n

for i from 1 to n

for j from 1 to i

end for

end for

print s

四、典型習題導練

1. 下列的迴圈語句迴圈的次數為( )

for i from 1 to 7

for j from 1 to 9

pint i+j

end for

end for

enda.7次b.9次c.63次 d.16次

2.執行下面的程式後輸出的結果是若將程式中的a語句與b語句的位置互換,再次執行程式後輸出的結果為

while

a語句b語句

end while

print x,y

end3.偽**描述的求t的代數式是求的代數式是

read n

for i from 1 to n

end for

print t,s

4.執行下面程式後輸出的結果為

for i from 10 to 1 step -2

print i

end for

end5. 將100名學生的一門功課的成績依次輸入並計算輸出平均成績.

錯解剖析得真知

第六章立體幾何初步 6.1 兩條直線之間的位置關係 一 知識導學 1.平面的基本性質.公理1 如果一條直線上的兩點在乙個平面內,那麼這條直線上所有的點都在這個平面內.公理2 如果兩個平面有乙個公共點,那麼它們還有其他公共點,且所有這些公共點的集合是一條過這個公共點的直線.公理3 經過不在同一條直線上...

錯解剖析得真知

錯解剖析得真知 二十三 7.4軌跡問題 一 知識導學 1.方程的曲線 在平面直角座標系中,如果某曲線c 看作適合某種條件的點的集合或軌跡 上的點與乙個二元方程f x,y 0的實數解建立了如下的關係 1 曲線上的點的座標都是這個方程的解 2 以這個方程的解為座標的點都是曲線上的點.那麼這個方程叫做曲線...

錯解剖析得真知

5.2簡單的線性規劃 一 知識導學 1.目標函式 是乙個含有兩個變數 和 的函式,稱為目標函式 2.可行域 約束條件所表示的平面區域稱為可行域.3.整點 座標為整數的點叫做整點 4.線性規劃問題 求線性目標函式 性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題 只含有兩個變數的簡單線性規劃問...