算法的概念

編輯: 逍遙路 關(guān)鍵詞: 高二 來源: 高中學(xué)習(xí)網(wǎng)
目標(biāo) 1、知識目標(biāo):了解算法。分析算法。2、能力目標(biāo):體驗程序的獨特魅力,了解編程加工的內(nèi)在機制,培養(yǎng)學(xué)生的創(chuàng)新能力!3、情感目標(biāo):通過編程實現(xiàn)信息的加工,激發(fā)學(xué)生的興趣,增加學(xué)生的成就感。
重點:如何分析算法,算法的概念 ,算法的表示
難點: 如何寫算法。理解用算法描述實際問題,理解人的思維在計算機工作中發(fā)揮的作用。
方法:講授法,演示法,歸納法
教學(xué)反思:
教 學(xué) 過 程
一、導(dǎo)入
在學(xué)習(xí)程序設(shè)計時,既要掌握所使用的某種計算機計算機語言如PASCAL語言,更好掌握解題的方法和步驟,這是程序設(shè)計中的關(guān)鍵。語言只是一個工具,只懂得語言的規(guī)則并不能編制出有效的高質(zhì)量的程序,下面所講座的算法,就是研究解題的步驟和方法,這是編程的基礎(chǔ),同時也是我們解數(shù)理化題的基礎(chǔ)。
著名計算機科學(xué)家沃思提出一個公式:
?? 數(shù)據(jù)結(jié)構(gòu) + 算法 = 程序
二新授
什么是算法:廣義地說,為解決一個問題而采取的方法和步驟,就稱為“算法”。
或者說:算法是解題方法的精確描述。解決一個問題的過程,就是實現(xiàn)一個算法的過程。
1.做任何事情都有一定的步驟。例如要計算

的值,無論手算,心算,或用算盤,計算器計算,都要經(jīng)過有限的事先設(shè)計好的步驟。
2、對同一個問題,往往有不同的解題方法和步驟


?方法1:順序計算1-1/2+1/3-1/4+1/5……+1/99-1/100,一直加到100 加99次
?方法2:先計算+,再計算減,即1+1/3+1/5……+1/99,1/2+1/4+1/6……+1/100當(dāng)然各種方法有優(yōu)劣之分。
3、不僅數(shù)值計算的問題要研究算法,實際上,做任何事情。都需要事先設(shè)想好的步驟和方法,這就是算法。
計算機算法可分為兩大類別:
?數(shù)值運算
?非數(shù)值運算
數(shù)值運算舉例:求數(shù)值解,例如求方程的根、求函數(shù)的定積分等。
非數(shù)值運算舉例:人名排序,圖書資料檢索等.
三、簡單算法舉例
為了理解如何設(shè)計算法,下面舉幾個算法的簡單例子。

[例1] 有兩個杯子A和B,分別盛有果汁和酒,要求將這兩個杯子進行互換。
(請學(xué)生回答,并要求說清楚明確的步驟)
學(xué)生所回答的步驟就是算法的描述:
根據(jù)常識,必須增加一個空杯C作為過渡。
其算法表示
步驟1:先將A杯中的果汁倒在C杯中;
步驟2:再講B杯中的酒倒在A杯中;
步驟3:最后將C杯中的果汁倒在B杯中。

此問題可以抽象為數(shù)值運算中的交換兩個變量的值,簡化為:
①A → C
②B → A
③C → B

[例2] 從十個數(shù)中挑選出最大的數(shù)。
創(chuàng)設(shè)情景:這個問題的思路可以用“打描臺”來比喻。第一個同學(xué)先上講臺,然后第二個同學(xué)上去比試,勝者(個子高的)留在講臺上,依次輪流,一直到第十個人比完為止()一共九次)最后留在講臺上的同學(xué)就是勝者(個子最高的同學(xué))。
算法描述:
1.先任選一個數(shù)放在變量A中;
2.將第二個數(shù)與變量A中的數(shù)進行比較,大者放在變量A中;
3.再將第三個數(shù)與變量A中的數(shù)進行比較,大者放在變量A中;



10.最后將第十個數(shù)與變量A中的數(shù)進行比較,大者放在變量A中。

這樣寫算法雖然正確,但是太煩瑣了,可以簡化為如下:
1.?dāng)?shù)X → A,計數(shù)器 0 → N;
2.下一個數(shù)Y與A比較,大者→ A;
3.N + 1 → N;(增加一次比較次數(shù))
4.若N ? 9,執(zhí)行第2步,否則停止循環(huán),此時A中的數(shù)最大。
顯然,用“循環(huán)”表示的算法比較簡練。
如果題目要求改為“從1000個數(shù)中挑選最大者”,只許需要將算法里面的第4步中的“9”改為“999”即可。

[例3] 求兩個正整數(shù)m和n的最大公約數(shù)。
解題之前介紹“輾轉(zhuǎn)相除法”求最大公約數(shù)的方法!拜氜D(zhuǎn)”就字面意思來講是翻來覆去的意思,因此“輾轉(zhuǎn)相除法”的格式可以形象地表示為:

將m和n賦具體值,m = 60,n = 14,板書具體求解方法。
用m 作被除數(shù), n 作除數(shù),r 做余數(shù)。
具體方法(算法)為:
①求m/n的余數(shù)r;
②若r = 0 ,則n為最大公約數(shù),若r ≠ 0,執(zhí)行第③步;
③將n → m,將r → n中;
④返回重新執(zhí)行第①步。
注意:如果事先不知道M,N兩個數(shù)誰大誰小,應(yīng)(可)在第一步之前增加一個步驟,比較一下兩個數(shù)的大小,大數(shù)在m中,小數(shù)在n中。

四、算法的特性
1、有窮性:一個算法應(yīng)該包含有限個操作步驟,而不能是無限的。
2、確定性:算法的每個步驟都應(yīng)該是明確無誤的,不能含義模糊,使執(zhí)行者無所適從。
3、有零個或者多個輸入
4、有一個或者多個輸出
5、有效性:算法中的每一步都應(yīng)該能有效地執(zhí)行,執(zhí)行算法最后應(yīng)該能得到確定的結(jié)果。

五、歸納總結(jié)
算法的概念;
算法的描述;
算法的特性:
?有窮性:包含有限的操作步驟
?確定性:算法中的每一個步驟都應(yīng)當(dāng)是確定的
?有零個或多個輸入:輸入是指在執(zhí)行算法時需要從外界取得必要的信息
?有一個或多個輸出:算法的目的是為了求解,“解” 就是輸出
?有效性:算法中的每一個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果 。
對于程序設(shè)計人員來說,我們不僅要會使用現(xiàn)成的算法,還要會設(shè)計算法,即要設(shè)計出算法中的每一個步驟。

六、 練習(xí)
①用輾轉(zhuǎn)相除法求324和180的最大公約數(shù)。

七、板書設(shè)計


本文來自:逍遙右腦記憶 http://m.portlandfoamroofing.com/gaoer/72261.html

相關(guān)閱讀:導(dǎo)數(shù)的四則運算法則