錯解剖析得真知(三十九)
§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
錯解: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
點評:此題易錯的是輸出值,根據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.線性規劃問題 求線性目標函式 性約束條件下的最大值或最小值的問題,通常稱為線性規劃問題 只含有兩個變數的簡單線性規劃問...