算法的概念教學(xué)設計案例
目標:
1、知識目標:了解算法。分析算法。
2、能力目標:體驗程序的獨特魅力,了解編程加工的內在機制,培養學(xué)生的創(chuàng )新能力。
3、情感目標:通過(guò)編程實(shí)現信息的加工,激發(fā)學(xué)生的興趣,增加學(xué)生的成就感。
重點(diǎn):如何分析算法,算法的概念 ,算法的表示
難點(diǎn): 如何寫(xiě)算法。理解用算法描述實(shí)際問(wèn)題,理解人的思維在計算機工作中發(fā)揮的作用。
方法:講授法,演示法,歸納法
教學(xué)反思:
教 學(xué) 過(guò) 程
一、導入
在學(xué)習程序設計時(shí),既要掌握所使用的某種計算機計算機語(yǔ)言如PASCAL語(yǔ)言,更好掌握解題的方法和步驟,這是程序設計中的關(guān)鍵。語(yǔ)言只是一個(gè)工具,只懂得語(yǔ)言的規則并不能編制出有效的高質(zhì)量的程序,下面所講座的算法,就是研究解題的步驟和方法,這是編程的基礎,同時(shí)也是我們解數理化題的基礎。
著(zhù)名計算機科學(xué)家沃思提出一個(gè)公式:
數據結構 + 算法 = 程序
二、新授
什么是算法:廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為“算法”;蛘哒f(shuō):算法是解題方法的精確描述。解決一個(gè)問(wèn)題的過(guò)程,就是實(shí)現一個(gè)算法的過(guò)程。
1.做任何事情都有一定的步驟。例如要計算的值,無(wú)論手算,心算,或用算盤(pán),計算器計算,都要經(jīng)過(guò)有限的事先設計好的步驟。
2、對同一個(gè)問(wèn)題,往往有不同的解題方法和步驟
如
方法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當然各種方法有優(yōu)劣之分。
3、不僅數值計算的問(wèn)題要研究算法,實(shí)際上,做任何事情。都需要事先設想好的步驟和方法,這就是算法。
計算機算法可分為兩大類(lèi)別:
數值運算
非數值運算
數值運算舉例:求數值解,例如求方程的根、求函數的定積分等。
非數值運算舉例:人名排序,圖書(shū)資料檢索等.
三、簡(jiǎn)單算法舉例
為了理解如何設計算法,下面舉幾個(gè)算法的簡(jiǎn)單例子。
[例1] 有兩個(gè)杯子A和B,分別盛有果汁和酒,要求將這兩個(gè)杯子進(jìn)行互換。
。ㄕ垖W(xué)生回答,并要求說(shuō)清楚明確的步驟)
學(xué)生所回答的步驟就是算法的描述:
根據常識,必須增加一個(gè)空杯C作為過(guò)渡。
其算法表示
步驟1:先將A杯中的果汁倒在C杯中;
步驟2:再講B杯中的酒倒在A(yíng)杯中;
步驟3:最后將C杯中的果汁倒在B杯中。
此問(wèn)題可以抽象為數值運算中的交換兩個(gè)變量的值,簡(jiǎn)化為:
、貯 → C
、贐 → A
、跜 → B
[例2] 從十個(gè)數中挑選出最大的數。
創(chuàng )設情景:這個(gè)問(wèn)題的思路可以用“打描臺”來(lái)比喻。第一個(gè)同學(xué)先上講臺,然后第二個(gè)同學(xué)上去比試,勝者(個(gè)子高的)留在講臺上,依次輪流,一直到第十個(gè)人比完為止()一共九次)最后留在講臺上的同學(xué)就是勝者(個(gè)子最高的同學(xué))。
算法描述:
1.先任選一個(gè)數放在變量A中;
2.將第二個(gè)數與變量A中的數進(jìn)行比較,大者放在變量A中;
3.再將第三個(gè)數與變量A中的數進(jìn)行比較,大者放在變量A中;
10.最后將第十個(gè)數與變量A中的數進(jìn)行比較,大者放在變量A中。
這樣寫(xiě)算法雖然正確,但是太煩瑣了,可以簡(jiǎn)化為如下:
1.數X → A,計數器 0 → N;
2.下一個(gè)數Y與A比較,大者→ A;
3.N + 1 → N;(增加一次比較次數)
4.若N ? 9,執行第2步,否則停止循環(huán),此時(shí)A中的數最大。
顯然,用“循環(huán)”表示的算法比較簡(jiǎn)練。
如果題目要求改為“從1000個(gè)數中挑選最大者”,只許需要將算法里面的第4步中的“9”改為“999”即可。
[例3] 求兩個(gè)正整數m和n的最大公約數。
解題之前介紹“輾轉相除法”求最大公約數的方法!拜氜D”就字面意思來(lái)講是翻來(lái)覆去的意思,因此“輾轉相除法”的.格式可以形象地表示為:
將m和n賦具體值,m = 60,n = 14,板書(shū)具體求解方法。
用m 作被除數, n 作除數,r 做余數。
具體方法(算法)為:
、偾髆/n的余數r;
、谌魊 = 0 ,則n為最大公約數,若r ≠ 0,執行第③步;
、蹖 → m,將r → n中;
、芊祷刂匦聢绦械冖俨。
注意:如果事先不知道M,N兩個(gè)數誰(shuí)大誰(shuí)小,應(可)在第一步之前增加一個(gè)步驟,比較一下兩個(gè)數的大小,大數在m中,小數在n中。
四、算法的特性
1、有窮性:一個(gè)算法應該包含有限個(gè)操作步驟,而不能是無(wú)限的。
2、確定性:算法的每個(gè)步驟都應該是明確無(wú)誤的,不能含義模糊,使執行者無(wú)所適從。
3、有零個(gè)或者多個(gè)輸入
4、有一個(gè)或者多個(gè)輸出
5、有效性:算法中的每一步都應該能有效地執行,執行算法最后應該能得到確定的結果。
五、歸納總結
算法的概念;
算法的描述;
算法的特性:
有窮性:包含有限的操作步驟
確定性:算法中的每一個(gè)步驟都應當是確定的
有零個(gè)或多個(gè)輸入:輸入是指在執行算法時(shí)需要從外界取得必要的信息
有一個(gè)或多個(gè)輸出:算法的目的是為了求解,“解” 就是輸出
有效性:算法中的每一個(gè)步驟都應當能有效地執行,并得到確定的結果 。
對于程序設計人員來(lái)說(shuō),我們不僅要會(huì )使用現成的算法,還要會(huì )設計算法,即要設計出算法中的每一個(gè)步驟。
六、 練習
、儆幂氜D相除法求324和180的最大公約數。
七、板書(shū)設計
【算法的概念教學(xué)設計案例】相關(guān)文章:
《函數的概念》教學(xué)設計06-04
映射的概念教學(xué)設計12-18
整式概念教學(xué)設計12-18
角的概念教學(xué)設計12-13
對數的概念的教學(xué)設計12-10
算法初步單元教學(xué)設計09-03
《算法初步》單元教學(xué)設計06-22