6.一隊士兵來到一條有鱷魚的深河的左岸.只有一條小船和兩個小孩,這條船只能承載兩個小孩或一個士兵.試設(shè)計一個算法,將這隊士兵渡到對岸,并將這個算法用流程圖表示.
§13.2基本算法語句
5. 3個正實數(shù),設(shè)計一個算法,判斷分別以這3個數(shù)為三邊邊長的三角形是否存在,畫
出這個算法的流程圖.
4. 在表示求直線
(
,
為常數(shù),且
,
不同時為0)的斜率的算法
的流程圖中,判斷框中應(yīng)填入的內(nèi)容是
3.將“打電話”的過程描述成一個算法,這個算法可表示為 ,由此說明算法具有下列特性 .
1. 下面流程圖中的錯誤是( )
![]()
圖13-1-11
A.
沒有賦值 B.循環(huán)結(jié)構(gòu)有錯
C.S的計算不對 D.判斷條件不成立
1.已知兩個單元分別存放了變量
和
的值,則可以實現(xiàn)變量
交換的算法是( ).
A.S1
B.S1
C.S1
D.S1 ![]()
S2
S2
S2
S2
![]()
S3
S3 ![]()
[例1] 已知三個單元存放了變量
,
,
的值,試給出一個算法,順次交換
,
,
的值(即
取
的值,
取
的值,
取
的值),并畫出流程圖.
錯解:第一步 ![]()
第二步 ![]()
第三步
流程圖為
![]()
圖13-1-3
錯因:未理解賦值的含義,由上面的算法使得
,
均取
的值.
舉一形象的例子:有藍(lán)和黑兩個墨水瓶,但現(xiàn)在卻把藍(lán)墨水裝在了黑墨水瓶中,黑墨水錯裝在了藍(lán)墨水瓶中,要求將其互換,請你設(shè)計算法解決這一問題.對于這種非數(shù)值性問題的算法設(shè)計問題,應(yīng)當(dāng)首先建立過程模型,根據(jù)過程設(shè)計步驟完成算法. 我們不可將兩個墨水瓶中的墨水直接交換,因為兩個墨水瓶都裝有墨水,不可能進(jìn)行直接交換.正確的解法應(yīng)為:
S1 取一只空的墨水瓶,設(shè)其為白色;
S2 將黑墨水瓶中的藍(lán)墨水裝入白瓶中;
S3 將藍(lán)墨水瓶中的黑墨水裝入黑瓶中;
S4 將白瓶中的藍(lán)墨水裝入藍(lán)瓶中;
S5 交換結(jié)束.
正解:第一步
{先將
的值賦給變量
,這時存放
的單元可作它用}
第二步
{再將
的值賦給
,這時存放
的單元可作它用}
第三步
{同樣將
的值賦給
,這時存放
的單元可作它用}
第四步
{最后將
的值賦給
,三個變量
,
,
的值就完成了交換}
流程圖為
![]()
圖13-1-4
點評:在計算機(jī)中,每個變量都分配了一個存儲單元,為了達(dá)到交換的目的,需要一個單元存放中間變量
.
[例2]已知三個數(shù)
,
,
.試給出尋找這三個數(shù)中最大的一個算法,畫出該算法的流程圖.
解:流程圖為
![]()
圖13-1-5
點評:條件結(jié)構(gòu)可含有多個判斷框,判斷框內(nèi)的內(nèi)容要簡明、準(zhǔn)確、清晰.此題也可將第一個判斷框中的兩個條件分別用兩個判斷框表示,兩兩比較也很清晰.若改為求100個數(shù)中的最大數(shù)或最小數(shù)的問題則選擇此法較繁瑣,可采用假設(shè)第一數(shù)最大(最小)將第一個數(shù)與后面的數(shù)依依比較,若后面的數(shù)較大(較小),則進(jìn)行交換,最終第一個數(shù)即為最大(最小)值.
點評:求和時根據(jù)過程的類同性可用循環(huán)結(jié)構(gòu)來實現(xiàn),而不用順序結(jié)構(gòu).
[例3]畫出求
的值的算法流程圖.
解:這是一個求和問題,可采用循環(huán)結(jié)構(gòu)實現(xiàn)設(shè)計算法,但要注意奇數(shù)項為正號,偶數(shù)項為負(fù)號.
思路一:采用-1的奇偶次方(利用循環(huán)變量)來解決正負(fù)符號問題;
![]()
圖13-1-6 圖13-1-7
思路二:采用選擇結(jié)構(gòu)分奇偶項求和;
圖13-1-8
思路三:可先將
化簡成
,轉(zhuǎn)化為一個等差數(shù)列求和問題,易利用循環(huán)結(jié)構(gòu)求出結(jié)果.
[例4] 設(shè)計一算法,求使
成立的最小正整數(shù)
的值.
解: 流程圖為
![]()
圖13-1-9
點評:這道題仍然是考察求和的循環(huán)結(jié)構(gòu)的運用問題,需要強(qiáng)調(diào)的是求和語句的表示方法.若將題改為求使
成立的最大正整數(shù)
的值時,則需注意的是輸出的值.
[例5]任意給定一個大于1的整數(shù)n,試設(shè)計一個程序或步驟對n是否為質(zhì)數(shù)做出判斷.
解:算法為:
S1
判斷n是否等于2,若n=2,則n是質(zhì)數(shù);若n>2
,則執(zhí)行S2
S2 依次從2-n-1檢驗是不是的因數(shù),即整除n的數(shù),若有這樣的數(shù),則n不是質(zhì)數(shù);若沒有這樣的數(shù),則n是質(zhì)數(shù).
點評:要驗證是否為質(zhì)數(shù)首先必須對質(zhì)數(shù)的本質(zhì)含義作深入分析:
(1)質(zhì)數(shù)是只能被1和自身整除的大于1的整數(shù).
(2)要判斷一個大于1的整數(shù)n是否為質(zhì)數(shù),只要根據(jù)定義,用比這個整數(shù)小的數(shù)去除n.如果它只能被1和本身整除,而不能被其它整數(shù)整除,則這個數(shù)便是質(zhì)數(shù).
![]()
圖13-1-10
[例6]設(shè)計一個求無理數(shù)
的近似值的算法.
分析:無理數(shù)
的近似值可看作是方程
的正的近似根,因此該算法的實質(zhì)是設(shè)計一個求方程
的近似根的算法.其基本方法即運用二分法求解方程的近似解.
解:設(shè)所求近似根與精確解的差的絕對值不超過0.005,算法:
S1 令
.因為
,所以設(shè)![]()
S2 令
,判斷
是否為0,若是,則m為所求;若否,則繼續(xù)判斷
大于0還是小于0.
S3 若
>0,則
;否則,令
.
S4 判斷
是否成立,若是,則
之間的任意值均為滿足條件的近似根;若否,則返回第二步.
點評:二分法求方程近似解的算法是一個重要的算法案例,將在第三節(jié)中詳細(xì)闡述.
3. 算法三種邏輯結(jié)構(gòu)的幾點說明:
(1)順序結(jié)構(gòu)是最簡單的算法結(jié)構(gòu),語句與語句之間,框與框之間是按從上到下的順序進(jìn)行的.在流程圖中的體現(xiàn)就是用流程線自上而下地連接起來,按順序執(zhí)行算法步驟.(2)一個條件結(jié)構(gòu)可以有多個判斷框.
(3)循環(huán)結(jié)構(gòu)要在某個條件下終止循環(huán),這就需要條件結(jié)構(gòu)來判斷.在循環(huán)結(jié)構(gòu)中都有一個計數(shù)變量和累加變量.計數(shù)變量用于記錄循環(huán)次數(shù),累加變量用語輸出結(jié)果,計數(shù)變量和累加變量一般是同步執(zhí)行的,累加一次,計數(shù)一次.
2. 畫流程圖時必須注意以下幾方面:
(1)使用標(biāo)準(zhǔn)的圖形符號.
(2)流程圖一般按從上到下、從左到右的方向畫.
(3)除判斷框外,大多數(shù)流程圖符號只有一個進(jìn)入點和一個退出點.判斷框具有超過一個退出點的唯一符號.
(4)判斷框分兩大類,一類判斷框“是”與“否”兩分支的判斷,而且有且僅有兩個結(jié)果;另一類是多分支判斷,有幾種不同的結(jié)果.
(5)在圖形符號內(nèi)描述的語言要非常簡練清楚.
1.“算法“沒有一個精確化的定義,教科書只對它作了描述性說明,算法具有如下特點:
(1)有限性:一個算法的步驟是有限的,必須在有限操作之后停止,不能是無限的.
(2)確定性:算法的每一步驟和次序應(yīng)當(dāng)是確定的.
(3)有效性:算法的每一步驟都必須是有效的.
國際學(xué)校優(yōu)選 - 練習(xí)冊列表 - 試題列表
湖北省互聯(lián)網(wǎng)違法和不良信息舉報平臺 | 網(wǎng)上有害信息舉報專區(qū) | 電信詐騙舉報專區(qū) | 涉歷史虛無主義有害信息舉報專區(qū) | 涉企侵權(quán)舉報專區(qū)
違法和不良信息舉報電話:027-86699610 舉報郵箱:58377363@163.com