中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2006算法初步教學詳解新課標人教版A[上學期]

資源下載
  1. 二一教育資源

2006算法初步教學詳解新課標人教版A[上學期]

資源簡介


算法初步教學詳解
東莞群英學校 梁斌玉
1.1算法與程序框圖
1.1.1算法的概念
計算機的問世可謂20世紀最偉大的發明,它把人類社會帶進了信息技術的時代,而算法是計算機科學的重要基礎,就像使用算盤一樣,人們要給計算機編制“口訣”——算法,才能讓它工作。要想了解計算機的工作原理,算法的學習是一個開始。
做任何事情都有一定的步驟。例如,你想考大學首先要填報名志愿表,拿到準考證,參加考試,得到錄取通知書,到大學報名注冊等。這些步驟都是按一定順序進行的,缺一不可?,F實生活中,我們很多事情都是這樣一步一步的完成的。 可見算法并不是一個全新的概念,它融入在我們的現實生活中。在我國古代,“算法”取得了輝煌的成就。

燒水泡茶
請看一下燒水泡茶的過程
解:燒水泡茶可分下面4步完成。
Step1:洗好開水壺;
Step2:灌上涼水,放在火上,等待水開;
Step3:洗茶杯,茶杯里放好茶葉;
Step4:水開后再沖水泡茶。
例2.人鬼過河
現在河的岸邊有三個人和三個鬼,河上只有一條小船,船上最多能坐兩個“人”,在河的任何一邊,當鬼的個數比人多時,鬼就會吃掉人。請問如何才能使人和鬼都平安的到達對岸。
解: 要想使人鬼都安全過河,需要下面11步。
Step1: Step2:

Step3: Step4:

Step5: Step6:

Step7: Step8:

Step9: Step10:

Step11:

從事各種工作和活動,都要事先想好工作的步驟,然后按部就班的進行,這樣就可以避免產生錯誤。

定義:我們把用來解決問題的一系列步驟叫做算法(algorithm)。
算法一詞源于算術(algorism),即算術方法,是指一個由已知推求未知的運算過程。隨著計算機的出現,人們常把這些“步驟”編寫為“程序”由計算機來解決。算法必須符合以下條件:
1.算法的每一步要做什么必須是明確的,不能含糊不清,模棱兩可;例如,要把全班同學分成兩隊,“高個子的同學站出來”這個步驟就是不確定的,含糊的,哪些同學算高,哪些同學算矮?個子中等的同學就會不知所措。
2.算法的每一步都應當能有效的執行,并得到確定的結果。例如若是無效的,不能執行的。
3.算法必須在有限步內完成,如果需要無限步完成,就失去了實際意義。算法的有限性往往指“在合理的范圍之內”。如果讓計算機執行一個歷時1000年才結束的算法,雖然是有限的,但超過了合理的限度,人們也不把它視作有效算法。究竟什么算“合理限度”并無嚴格標準,由人們的常識和需要而定。
例3. 給計算機編寫一個算法,輸入一個自變量的值,求分段函數的函數值.
解:Step1:輸入x的值;
Step2:進行判斷,如果,則, 否則。
Step3: 輸出y的值。


2.計算y

說明:1.輸入x的值就是把自變量x的值由鍵盤輸入計算機,例如要計算x=2時的函數值,就輸入2。
2.根據相應的x的值計算相應的函數值,比如輸入3,則 ;如果輸入-4,則。
3.輸出結果就是把計算結果顯示在計算機屏幕上。
以上算法可以通過輸給計算機一系列“命令”來實現,這些命令叫做計算機語言。
例4.篩選法求質數
質數亦叫作素數,是大于1的自然數,并且除了該數本身和1以外沒有其它的數能整除它,如2,3,5,7,11,13,…,質數有無窮多個。
(1)判斷143是否為質數。
解:
Step1:143÷2不為整數;
Step2:143÷3不為整數;
Step3:143÷4不為整數;
Step4:143÷5不為整數;
Step5:143÷6不為整數;
Step6:143÷7不為整數;
Step7:143÷8不為整數;
Step8:143÷9不為整數;
Step9:143÷10不為整數;
Step10:143÷11=13,143能被11整除;
Step11:結論:143不是質數。
(2)判斷17是否為質數。
解:
Step1:17÷2不為整數;
Step2:17÷3不為整數;
Step3:17÷4不為整數;
Step4:17÷5不為整數;
Step5:17÷6不為整數;
Step6:17÷7不為整數;
Step7:17÷8不為整數;
Step8:17÷9不為整數;
Step9:17÷10不為整數;
Step10:17÷11不為整數;
Step11:17÷12不為整數;
Step12:17÷13不為整數;
Step13:17÷14不為整數;
Step14:17÷15不為整數;
Step15:17÷16不為整數;
Step16:結論:17是質數。

(3)判斷216091是不是質數
該題的計算量非常大,我們可以把算法編為程序,由計算機幫我們計算。
(4)設計一個算法,輸入大于2的整數n,由計算機判斷它是不是質數。
解:Step1:輸入整數n;
Step2:依次檢驗2~(n-1)是不是n的因數,若有這樣的數,則n不是質數,否則,n為質數。
Step3:輸出結果。
說明:其中第3步在計算機中可以通過一個循環來實現,今后會學到。

[思考] 你能舉出跟多算法的例子嗎?與一般的解決問題的過程比較,你認為算法最重要的特征是什么?
______________________________________________________________________________________________________________________
[練習]:
1.任意給定一個正數,設計一個算法,求以這個數為半徑的圓的面積。
2.設計一個算法,求的值。
3.?;⑦^河。
一個人帶三只老虎和三頭牛過河。只有一條船,可以容一個人和兩只動物。沒有人在的時候,如果老虎的數量不少于牛的數量就會吃掉牛。設計安全渡河的算法。
4.任意給定一個大于1 的正整數n,設計一個算法,求出n的所有因數。
1.1算法與程序框圖
1.2.2程序框圖

算法可以用自然語言來表示,但為了使算法的步驟表達得更為直觀,我們更經常地用圖形方式來表達,這就是程序框圖。 程序有三種基本邏輯結構——順序結構、選擇結構和循環結構。復雜的程序都是由這三種結構組成。
一、順序結構

例5.請敘述一下燒水泡茶的過程
解:該算法用自然語言表述為
Step1:洗好開水壺;
Step2:灌上涼水,放在火上,等待水開;
Step3:洗茶杯,茶杯里放好茶葉;
Step4:水開后再沖水泡茶。
可以用程序框圖表示為:


例6. 已知一個三角形的三邊長分別是,它的面積可用海倫—秦九韶公式計算。,其中。為計算機設計一個算法,輸入三角形的三條邊長,輸出三角形的面積S。
解:程序框圖為


程序框圖符號和它們所表示的功能:
圖形符號
名稱
功能
起止框(終端框)
表示一個算法的起始和結束
輸入輸出框
表示一個算法輸入和輸出的信息

處理框(執行框)
賦值、計算
流程線
連接程序框
順序結構由若干個依次執行的處理步驟組成。這是任何一個算法都離不開的基本結構。
二、選擇結構
例7.給計算機編寫一個算法,輸入一個自變量的值,求分段函數的函數值
解:該算法用自然語言表述為
Step1:輸入x的值;
Step2:進行判斷,如果,則, 否則。
Step3: 輸出結果。
可以用程序框圖表示為:
 
其中被虛線框起來的是選擇結構 選擇結構的一般形式

[探究] 當x取7,0,-5時,程序分別沿著哪條路線運行?請畫出來。
______________________________________________________________________________________________________________________
選擇結構由一個判斷框和兩個分支組成。當條件框內的條件成立時,程序沿著分支1進行;否則程序沿分支2進行。
圖形符號
名稱
功能

判斷框
判斷某一條件是否成立,它有兩個出口:“是”或“否”。條件成立時,程序沿著“是”這個分支走下去;當條件不成立時,程序沿著“否”這個分支進行。

流程線
連接程序框
連接點
當一個程序框圖很大,一頁紙寫不下時,用來連接程序框圖的兩部分。一般在連接處標上相同的數字序號。

例8.判斷一元二次函數是否有根。
分析:,當時,方程有實根;當時,方程無實根。
解:程序框圖表示為

[思考]
(1)比較例7和例8,說出何時使用平行四邊形,何時使用直角矩形?
___________________________________________________________
(2)例8中為什么只有這一個判斷框,而沒有時的判斷框?
___________________________________________________________
選擇結構的嵌套
例9.函數,編寫一個算法,輸入x的值,輸出y的值
解: 此框圖是嵌套選擇結構,外層選擇結構的“Yes”分支很簡單,“No”分支中又包含了一個條件結構。

[探究] 當x取2,0,-2時,程序分別沿著哪條路線運行?請畫出來。
______________________________________________________________________________________________________________________
三、循環結構
(1)當型循環結構(WHILE型)
例10.智力競賽的中,主持人提問,選手回答,若回答正確,加10分,如果錯誤,不加分,然后主持人繼續提問,選手繼續回答,如此循環下去,直到提問結束。用程序框圖來描述這一情況。
解:由于過程中出現了循環,需要用循環結構果來表示。
 循環結構的一般形式
虛線框起來的不分是循環結構,它由一個判斷框和循環體組成。
[探究]
(1)何時循環進行,何時循環結束?
__________________________________________________________________________________________________________________________
(2)“分數=分數+ 10分”的含義是:“后來的分數=原分數+10分”。假設前三個問題選手都回答正確,請在下表中填入相應的數字。

(3)如果用變量s表示分數,上述表達式該如何表示?
_________________________________________________________

例11. 寫出求1+2+3+4+5+6的一個算法。
解: Step1:計算1+2得到3;
Step2:將第一步中的運算結果3與3相加得到6;
Step3:將第二步中的運算結果6與4相加得到10;
Step4:將第三步中的運算結果10與5相加得到15;
Step5:將第四步中的運算結果15與6相加得到21。

例12.設計一個計算的算法
解:如果按例11的方法,步驟很多。
我們可以設想有一個空箱子S,第1次放入1個球,第2次放入2個球……第100次放入100個球。這樣重復100次后,箱子里的總球數就是個。每放一次球我們可以看作一次循環,總共循環了100次。

該算法用程序框圖可表示為:


說明:
(1)程序按箭頭所指方向進行, 在判斷框處 ,如果,則按yes所指方向進行循環,否則按No所指方向進行。
(2)i叫做計數變量,用于記錄循環次數,同時它的取值還可以用來判斷循環是否中止。循環第一圈時i的值為1,第二圈時i的值為2……第100圈時,i的值為100。這種變化是通過語句i=i+1來實現的。其含義是
“后來的i值=原i值+1”
每循環一圈,i=i+1被執行一遍,i的值就增加了1。
(3)S叫做累加變量,用于記錄累加結果。
循環第1圈在S上加1;
循環第2圈在S上加2;
循環第3圈在S上加3;
…………
循環第i圈在S上加i;
…………
循環第100圈在S上加100;
“循環第i圈在S上加i”用語句S=S+i表示,把這時i的值加到S上。當循環到100圈時,S的值就是的和。
為了真正理解該程序,請在下表中填入相應的數字。
累加變量 計數變量

[思考] 計數變量和累加變量的作用。
______________________________________________________________________________________________________________________
例13.設計一個計算的算法,并模仿例12進行分析。
分析:先考慮清楚下面兩個問題。
從2到100的偶數共有多少個?______
兩個相鄰偶數的間隔是多少?_______
解:程序框圖為:

請在下表中填入相應的數字。
累加變量 計數變量

(2)直到型循環結構(UNTIL型)
例.14 餓漢吃餅
下面是描述描述一個餓漢吃餅的情況,如果饑餓的話就吃一張餅,直到吃飽為止。分別用當型和直到型兩種循環結構進行描述。
當型 直到型

[探究] 找出當型和直到型的區別
(1) 當 型:先判斷條件,再執行循環體;
直到型:______________________________。
(2) 當型和直到型的條件_________。
(3) 當 型:滿足條件時執行循環體;
直到型:____________________________。
直到型循環結構(UNTIL型)的一般形式:

當型型循環結構在執行循環體之前,對循環條件進行判斷,當條件滿足時執行循環體,不滿足則停止循環,執行循環結構后面的步驟。
直到型循環結構在執行了一次循環體之后,對循環條件進行判斷,當條件不滿足時執行循環體,滿足則停止循環,執行循環結構后面的步驟。
總之:當型循環結構的特點是“當滿足條件時就循環”;
直到型循環結高的特點是“直到滿足條件時退出”。

[練習]
設計一個求任意數的絕對值得算法,并劃出程序框圖。
任意給定3個正實數,設計一個算法,判斷分別以這3個數為邊長的三角形是否存在。畫出這個算法的程序框圖。
某居民區的物業部門每月向居民收取衛生費,計費方法是:3人和三人以下的住戶,每人收取5元;超過3人的住戶,每超出一人,加收1.2元。寫出一人數x為自變量,以衛生費y為函數值的分段函數。設計一個算法,根據輸入的人數,計算應收取的衛生費,畫出程序框圖。
設計一個求解一元二次方程的算法,畫出程序框圖。
設計一個計算的算法,畫出程序框圖。
設計一個算法,求的值.,畫出程序框圖。
1.2基本算法語句
計算機完成任何一項任務都需要算法。但是,我們用自然語言或程序框圖描述的算法,計算機是無法“理解”的。因此還需要把算法翻譯成計算機能理解的“計算機程序設計語言”(Progamming Language),編制成計算機程序。
我們前面學過,算法有三種基本結構:順序結構、條件結構和循環結構。為了實現算法中三種基本的邏輯結構,各種程序設計語言都包括下列算法語句:輸入語句、輸出語句、賦值語句、條件語句和循環語句。
程序設計語言有很多種,如BASIC,Foxbase,C語言,C++,J++,VB等。它們的基本原理是相同的。本章中,我們學習的程序設計語言是“QuickBASIC”語言,它是一種類BASIC語言。BASIC是Beginner Allpurpose Symbolic Instruction Code(初學者通用符號指令代碼)的英文縮寫,與1964年由美國的兩位教授設計,具有簡單、易學的特點。
1.2.1輸入語句、輸出語句和賦值語句
輸入語句、輸出語句、和賦值語句基本上對應于算法中的順序結構。計算機從上而下按照語句排列的順序執行這些語句。
一、輸入語句
例15.編制一個程序,在電腦屏幕上顯示“Hello,evryone!”。
解:運行QuickBASIC軟件,在編輯窗口內輸入下面程序。


編輯程序 運行結果
其中的PRINT是一個命令,它的作用是輸出它后面引號中的內容。運行該程序,會在電腦屏幕上顯示:Hello,everyone!
例16. 設變量x=123,編制一個程序,在屏幕上顯示出x的值。
解:“運行QuickBASIC軟件,在編輯窗口內輸入下面程序。


編輯程序 運行結果
[思考] PRINT語句后的輸出內容中,加引號和不加引號的區別? __________________________________________________________________________________________________________________________________
上面幾個例子中“PRINT”語句就是輸出語句,對應于程序框圖中的輸出語句。其一般格式為:
注意,提示內容和變量之間用分號“:”隔開;如果要輸出多個變量,用逗號隔開,例如 PRINT “ a,b,c=”; a,b,c
想一想下面語句會輸出什么結果?


編輯程序 運行結果
例17.當x=123時求函數的值。
解:“運行QuickBASIC軟件,在編輯窗口內輸入下面程序。


編輯程序 運行結果
程序中的運算符,和我們平常用的有所不同,具體如下:
數學運算




程序符號
+
-
*
/
x^n
sqr(a)
abs(a)
二、輸出語句
例18.編寫一個程序,輸入x的值求函數的值。
解:“運行QuickBASIC軟件,在編輯窗口內輸入下面程序。
編輯程序
這個程序中,第一行的INPUT語句就是輸出語句,其后的x是一個變量。該語句的作用是從鍵盤輸入x的值。例如要計算x=100時的函數值,就輸入100。
輸出語句對應于程序框圖中的輸出框,其一般格式為:

輸出語句可以在計算機屏幕上輸出常量、變量和提示信息。
運行程序后會出現如下提示窗口:
運行后程序提示輸入x的值
輸入x的值111后程序自動計算出y=1401960
三、賦值語句
賦值語句前面已經見過,請再在看一下例3 :
x=123
y=x^3+3*x^2-24*x+30
PRINT “y=” ; y
END.
第一行和第二行叫做賦值語句,顧名思義,賦值語句就是將表達式所帶表的值賦給變量。
賦值語句中的“=”叫做賦值號,它和數學中的等號不完全一樣。計算機執行賦值語句時,先計算“=”右邊的表達式式的值,然后把這個值賦給左邊的變量。
例如第一行中,就把左邊的123賦給右邊的變量x(即讓x等于123);第二行,先計算出左邊的表達式的值為1401960,然后把1401960賦給變量y。
賦值語句的一般格式為:

可以把變量看作一個存放數據的盒子,而且是最多只能存放一個數據的盒子。當一個新數據放進去時,原來的數就被“擠”了出去。
請說出下面程序輸出的結果
a=10
a=a+20
PRINT “a=”;a
END
第一行:把等號右邊的數值10賦給左邊的變量a;
aa a:
第二行:先計算等號右邊a+20的值10+20=30,然后把數據30存入變量a,a中原來的10被沖掉。
1 a:
輸出結果:a =30
例19.編寫程序,計算一個學生數學、語文、英語三門課的平均成績。
解:程序為:
INPUT “Maths=”;a
INPUT “ Chines=”;b
INPUT “ English=”;c
x=(a+b+c)/3
PRINT “ The average is”;x
END
[探究] 請把下面的程序框圖翻譯為程序,并說出那些框圖對應輸出語句,那些框圖對應輸入語句,那些框圖對應賦值語句。

例20.已知,,交換的值。
分析:請看下面的程序
a=2
b=5
a=b
b=a
PRINT a,b
END
把上述程序輸入QuikeBASIC,運行,得到結果:5 ,5
沒有達到我們的目的,為什么會這樣呢?請分析程序每行中a、b的值,并填寫下表。
a b
第1行:
第2行:
第3行:
第4行:
第5行:
第一行:a的值為2;
第二行:b的值為5;
第三行: 把b的值賦給a,這時b的值為5,所以a=5;
(注意:這時a中原來存儲的數值2 已經被沖掉了。)
第四行:把a的值賦給b,而這時a的值為5,所以b的值還是5;
第五行:因為a,b的值均為5,所以輸出結果為5 5。

解:(空桶法)交換裝滿水的兩個水桶里的水需要再找一個空桶,交換兩個變量正確的方法是設置一個中間變量t。
a=2
b=5
t=a
a=b
b=t
PRINT a,b
END

請分析一下每行中a、b、t的值,并填表。
a b t
第1行:
第2行:
第3行:
第4行:
第5行:
第6行:
第三行t=a的作用:把a的值2保存在變量x中,這樣當執行a=b時,a中的值仍可以在t中找到。
[練習]
已知華氏溫度和攝氏溫度的轉化公式為:

編寫一個程序,輸入一個華氏溫度,輸出其相應的攝氏溫度。
編寫一個程序,輸入兩個非零實數,輸出他們加、減、乘、除的結果。
已知一個三角形的三邊長分別是,它的面積可用海倫—秦九韶公式計算。
,其中
設計一個算法,輸入三角形的三條邊長,輸出三角形的面積S。寫出程序框圖和相應的程序。
春節到了,糖果店的售貨員忙極了。已知水果糖每千克10.4元,奶糖每千克15.6元,果仁巧克力每千克25.2元,那么依次購買這三種果糖千克,應收取多少錢?請你設計一個程序,幫售貨員算賬。
編寫一個程序,輸入梯形的上底、下底和高的值,計算并輸出其面積。
編寫一個程序,交換兩個變量a 、b的值,并輸出交換前后的值。
1.2.2條件語句
算法中的條件結構由條件語句來表達。
一、基本條件語句
(1)兩個分支的條件結構
例21. 給計算機編寫一個程序,輸入一個自變量的值,輸出分段函數的函數值.
解: 程序框圖 QuickBASIC程序語句


QuickBASIC語言中的符號。
數學運算
等于
不等于
大于
小于
大于等于
小于等于
程序符號
=
<>
>
<
>=
<=
[探究] 比較程序框圖和QuickBASIC程序語句,回答下列問題。
(1)條件結構和那一段語句對應?條件語句以什么開始,以什么結尾?
__________________________________________________________________________________________________________________________________
(2)判斷框中的“條件”在條件語句中處于什么位置?
__________________________________________________________________________________________________________________________________
(3)“Yes”分支中的步驟在條件語句中處于什么位置?
__________________________________________________________________________________________________________________________________
(4)“No”分支中的步驟在條件語句中處于什么位置?
__________________________________________________________________________________________________________________________________
(5)當x=5的時候,計算機會執行哪些語句?
__________________________________________________________________________________________________________________________________
(6)當x=-5的時候,計算機會執行哪些語句?
__________________________________________________________________________________________________________________________________
條件語句的一般形式

條件結構框圖 條件語句
當計算機執行上述語句時,首先對IF后的條件進行判斷,如果條件成立,就執行THEN之后的語句體,否則執行ELSE之后的語句體。
(2)一個分支的條件結構

當計算機執行上述語句時,首先對IF后的條件進行判斷,如果條件成立,就執行THEN之后的語句體,否則條件語句結束,執行END IF之后的語句
二、條件結構的嵌套
例22.函數,編寫一個程序,輸入x的值,輸出y的值
解:用程序框圖表示為

用QuickBASIC 語言可寫為

INPUT “x =” ; x
IF x>0 THEN
y = 1
ELSE
IF x=0 THEN
y = 0
ELSE
y = -1
END IF
END IF

PRINT “ y=”; y
END
該程序中有兩個IF語句,大IF語句中嵌套了一個小IF語句。
[思考] 請將程序框圖和相應的語句對應起來。
_________________________________________________________________________________________________________________________________
例23 編寫一個程序,求一元二次方程的根.
分析:,
當時方程有兩個不相等的實根;
當時,方程有兩個相等的實根;
當時,方程沒有實根。
解:程序框圖為

由程序框圖寫出QuickBASIC 程序
INPUT a,b,c
D=b^2-4*a*c
IF D>=0 THEN
IF D>0 THEN
x1=(-b+sqr(D))/2*a
x1=(-b-sqr(D))/2*a
PRINT “x1=”;x1,”x2=”;x2
ELSE
x=-b/2*a
PRINT “x=”;x
END IF
ELSE
PRINT “No root.”
END IF
END
[思考]比較程序框圖和程序語句,回答下列問題。
(1)在程序框圖中找出外層條件結構和內層條件結構。
__________________________________________________________________________________________________________________________________
(2)在程序語句中找出外層條件語句和內層條件語句。
__________________________________________________________________________________________________________________________________
(3)找出程序框圖和程序語句的對應關系。
__________________________________________________________________________________________________________________________________
(4)試給a,b,c取不同的值,使程序沿著三條不同的路線由開始走到結束。
__________________________________________________________________________________________________________________________________
例24. 排序
編寫一個程序,使得任意輸入的3個整數按從大到小的順序輸出。
算法分析:
我們用a,b,c表示輸入的三個整數,比較三個整數,把最大的整數存入變量a中,次大的整數存入b中,最小的整數存入c中。
Step1:輸入三個整數a,b,c;
Step2:將a與b比較,如果aStep3:將a與c比較,如果a (第2步和第3步后,a中存儲的已經是最大的整數)
Step4:將b與c比較,如果b (第4步后,b中存儲的是次大的整數,c中存儲的是最小的整數)
Step5:按順序輸出a,b,c。
注意:交換兩個變量的值要用例20的“空桶法”。
解:程序框圖為

根據程序框圖,寫出計算機程序為:

INPUT “a,b,c=”;a,b,c

IF b>a THEN
t=a
a=b
b=t
END IF

IF c>a THEN
t=a
a=c
c=t
END IF
IF c>b THEN
t=b
b=c
c=t
END IF
PRINT a,b,c
END
[探究]
(1)假設輸入的數據是4,6,5,在右面填入相應的數字。
_________________________________________________________________
(2) 程序運行到第5行可以達到的目的是:
__________________________________________________________________________________________________________________________________
(3) 程序運行到第10行可以達到的目的是:
__________________________________________________________________________________________________________________________________
(4) 程序運行到第15行可以達到的目的是:
__________________________________________________________________________________________________________________________________
[練習]
1.讀程序,說出該程序的功能。
INPUT “Please input an inter:”;x
IF 9 a=x10
b=x MOD 10
PRINT a,b
END IF
END
QuickBASIC語言中的符號。
數學運算


的商
的余數
程序符號
AND
OR
a MOD b
注:(1)在程序中用“AND”表示“且”,用“OR”表示“或”。
(2)用“a/b”表示,而商用“ab”表示。例如3410=3,578=7。
(3)的余數用“a MOD b”表示,例如34 MOD 10=4,57 MOD 8=1。
2.編寫程序,判斷一個整數是偶數還是奇數,即從鍵盤上輸入一個整數,輸出該數的奇偶性。
3.閏年是指年份能被4整除但不能被100整除,或者能被400整除的年份。編寫一個程序,判斷輸入的年份是否為閏年。
4.編寫一個程序,輸入兩個整數a,b,判斷a是否能否被b整除。
5.已知函數編寫一個程序,輸入自變量x的值,輸出相應的函數值。
1.2.3循環語句
算法中的循環結構是由循環語句來實現的。
一、當型循環語句
程序語言中,當型循環結構由當型循環語句(While)表示。
例25設計一個計算的算法并寫出相應的程序。
解: 程序框圖 程序語言

[探究] 比較程序框圖和程序語句,回答下列問題。
(1)循環結構和那一段語句對應?當型循環語句以什么開始,以什么結尾?
__________________________________________________________________________________________________________________________________
(2)判斷框中的“循環條件”在循環語句中處于什么位置?
__________________________________________________________________________________________________________________________________
(3)循環結構中的“循環體”在當型循環語句中處于什么位置?
__________________________________________________________________________________________________________________________________
(4)請說出程序中每一條語句被執行了多少次。
__________________________________________________________________________________________________________________________________
_________________________________________________________________
循環結構的一般形式為:

循環結構框圖 循環語句
當計算機遇到WHILE語句時,先判斷條件是否成立,如果符合條件,就執行WHILE和WEND之間的循環體;然后再檢查條件,如果仍然符合,再次執行循環體,這個過程反復進行,直到某一次條件不符合為止。這時計算機將不執行循環體,直接跳到WEND之后,執行WEND之后的語句。
例26下面是一個計算的算法。請填寫程序框圖和相應的程序。
解:程序框圖 程序語句

例27下面是一個計算的算法。請填寫程序框圖并寫出相應的程序。
解:

[思考] 綜合例25、例26、例27思考計數變量和累加變量如何配合從而達到目的的?
___________________________________________________________________________________________________________________________________________________________________________________________________
二、直到型循環結構
程序語言中,直到型循環結構由直到型循環語句(Until)表示。
例28設計一個計算的算法并寫出相應的程序。
解: 程序框圖 程序語言

注:英文LOOP是循環的意思。
[探究] 比較程序框圖和程序語句,回答下列問題。
(1)直到型循環結構和那一段語句對應?循環語句以何開始,以何結尾?
__________________________________________________________________________________________________________________________________
(2)判斷框中的“循環條件”在直到型循環語句中處于什么位置?
_________________________________________________________________
(3)循環結構中的“循環體”在直到型循環語句中處于什么位置?
_________________________________________________________________
循環結構的一般形式為:

直到型循環結構框圖 UNTIL循環語句
[思考]參照直到型循環結構,說說計算機是按怎樣的順序執UNTI語句的?
__________________________________________________________________________________________________________________________________
例29.編寫一個程序,輸入大于2的整數n,由計算機判斷它是不是質(Prime Number)。
解:根據例3的算法,程序框圖為

[思考]
(1)哪一部分為循環結構,哪一部分為條件結構?
__________________________________________________________________________________________________________________________________
(2)怎么判斷n能夠被i整除?
_________________________________________________________________
(3)根據例3的算法,什么時候循環結束?
_________________________________________________________________
(4)循環結束后,意味著什么?意味著什么?
_________________________________________________________________
由程序框圖寫出程序:
INPUT “n=”;n
i=2

DO
r= n MOD i
i=i+1
LOOP UNTIL i >= n AND r =0
IF r=0 THEN
PRINT “n is not a prime mumber.”
ELSE
PRINT “n is a prime mumber.”
END IF
END
[探究]
(1)如果n= 35,請填寫下表

(2)請說出程序中每一條語句被執行了多少次。
__________________________________________________________________________________________________________________________________
_________________________________________________________________
(3)輸出結果為:___________________________。
(4)如果n=11,請用上述方法進行分析。
[練習]
編寫程序,輸入正整數n,計算它的階乘。
編寫程序,計算下面n個數的和:。
某牛奶廠2002年初有資金1000萬元,由于引進了先進的設備,資金年平均增長率可達到50%。請你設計一個程序,計算這家牛奶廠2008年底的資金總額。
(待續)
這是第四稿,非常感謝大家的鼓勵,能夠得到大家的認可,我感到非常欣慰。還望大家多提寶貴意見。
本文既適合學生閱讀,也可用來代替教材,進行教學,我就是這樣做的。教完后的感受是,對學生來說算法初步并不難,比三角函數等要簡單,只是教師感到很陌生罷了。
有出版社愿意出版本書,但要包銷5000本,我覺得數量太多,還在猶豫。這本書包含了我大量的心血,當然很想出版。如果哪位老師能幫忙,請和我聯系,您能幫我銷售100本左右就可以了。只要能保證不虧很多,我就出版。
梁斌玉 [email protected] QQ25804226 手機:13925528030

展開更多......

收起↑

資源預覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 商都县| 进贤县| 略阳县| 和龙市| 杭州市| 桃江县| 洮南市| 探索| 华安县| 化德县| 八宿县| 天全县| 辉南县| 永登县| 三明市| 伊宁市| 郴州市| 华宁县| 海兴县| 沈阳市| 邹平县| 洪湖市| 固始县| 东平县| 武义县| 宣城市| 洪泽县| 山西省| 环江| 古蔺县| 岑溪市| 平潭县| 安图县| 灌阳县| 天津市| 南召县| 潜江市| 师宗县| 贵定县| 松桃| 旬邑县|