項目設計——算法的概念及描述
- 教學設計
- 關注:1.72W次
算法的概念及描述 | |||
教材內容 | 浙教版信息技術必修一2.1算法的概念及描述 | ||
教學目標 | ●掌握算法的概念,明確算法對於程序設計的重要性。 ●掌握算法的基本特徵,知道什麼樣的算法是不合理的。 ●掌握算法的要素。 ●掌握算法的描述方法,學會使用自然語言和流程圖描述算法。 | ||
教學重點及難點 | 重點:掌握算法的基本特徵、學會描述算法。 難點:使用流程圖描述算法 | ||
學習環境 | 有教學控制軟件的多媒體機房,需要安裝Python編程環境。 | ||
建議課時 | 1課時 | ||
教學活動設計 | 教學環節 | 教學過程 | 設計意圖 |
情境導入 | 教師引導學生思考以下兩個問題: 問題一:正確的洗手的步驟 這個問題的解決步驟分8步,第1步取洗手液,然後用流動的水按照內-外-夾-弓-大-立-腕七步洗手法,洗手10-15分鐘。 問題二:《孫子算經》中雞兔同籠問題的解題步驟 對於這個問題,我們可以: 1.雞和兔都變成兩個頭:35*2=70 2.每隻兔子多了兩隻腳:(94-70)/2=12 3.總的頭數-兔子的只數=雞的只數:35-12=23 我們也可以: 1.先讓雞和兔各抬起一半的腳:94/2=47 2.每隻兔子多了一隻腳:47-35=12 3.總的頭數-兔子的只數=雞的只數:35-12=23 這兩種方法都是解決雞兔同籠問題的算法,可見,解決同一問題,可能有多種算法,我們要學會擇優選擇。 | 問題1與問題2的解題步驟都屬於算法。通過這兩個問題引出本節課的第一個重點內容—算法的概念,同時強調解決同一問題,可能有多種算法,我們要學會擇優選擇。 | |
新課教學 | ●知識講解--算法的概念。 通過前兩個例子,讓學生明白,算法就是解決問題的方法或步驟。 廣義地講,“算法”指的是解決問題或完成任務的一系列步驟集合。 在計算機科學領域,“算法”指的是用計算機解決問題而需要讓計算機有序執行的、無歧義的、有限的步驟集合。 ●知識講解--算法的特徵。 算法有5個特徵,分別是有窮性、確定性、可行性、有0個或多個輸入、有1個或多個輸出。 1.有窮性:指一個算法的處理步驟必須是有限的。比如求1到100中所有自然數的和是可以的,但是求1到100中所有有理數的和就不行。 2.確定性:指算法中對於每個步驟的描述必須是明確的。比如找出班級中所有身高大於等於175cm 的同學,這是可以的;但是找出班級中所有的高個同學,這個就不行,沒有明確的標準,多高算高個。 3.可行性:指每個步驟都是可以做到並能在有限時間內完成的。也就是説不能出現死循環,讓程序一直執行下去,沒有終止。 4.有0個或多個輸入:初始數據可以從外界輸入,也可以包含在算法之中 5. 有1個或多個輸出:算法必須包含至少一個輸出,沒有輸出的算法是沒有意義的。 ●知識講解--算法的要素。 算法的要素,分別是數據、運算、控制轉移。 數據:用算法解決問題時,必須明確參與運算的初始數據、運算時產生的中間數據以及解決問題後的結果數據。 運算:對數據計算和判斷 控制轉移(選擇、循環):在算法執行過程中,有時需要根據數據或運算結果的特點進行不同的處理,這就需要對結果數據進行判斷,並根據判斷結果進行選擇執行或循環執行。 舉例:變頻空調的工作原理 在夏天把空調温度設定在26oC,每當空調的温度傳感器測得室內温度小於或等於26oC時,算法就會“告訴”空調已經到達目標温度,可以暫停工作,空調就會“自動”關閉壓縮機的運行。這樣,既確保了室內温度,又實現了節能環保。 在這個過程中,設定的温度和傳感器測得的温度都是數據,將測得的温度與設定的温度進行比較就是運算,而根據比較結果判斷是關閉還是開啟壓縮機就是控制轉移。 ●知識講解--算法的描述方法 以快遞費的計算為例,來介紹算法的描述方式: 隨着信息技術的發展,電商事業的繁榮,快遞已經成為我們生活中的一部分。以順豐快遞為例,它的收費標準是1kg以內(包含1kg),收費12元,每超重1kg,加收2元(不足1kg的,按1kg計)。 現在需要我們為快遞公司設計一種算法,能夠方便快捷的計算快遞費。 1.用自然語言來描述,就是這樣的5個步驟: (1)輸入包裹快遞的重量x (2)判斷包裹的重量是否大於1kg (3)如果包裹的重量不大於1kg,應付款y=12 (4)如果包裹的重量大於1kg,應付款y=12+2* (x-1)向上取整 (5)輸出應付款的金額 自然語言描述的算法通俗易懂,不用專門的訓練,較為靈活。但是容易存在二義性,並且無法很準確的描述循環、選擇等結構。 2. 對應自然語言看一下流程圖的設計: 流程圖必須要有開始、結束框,輸入重量用輸入框,判斷包裹是否大於1kg,用判斷框,根據判斷結果進行相應處理用處理框,輸出用輸出框。 流程圖描述的算法就比較直觀、形象,有利於不同環境的程序設計。但是需要注意各種符號的使用。 3. 它對應的偽代碼: 輸入包裹的重量x if(x>1): y=12+(x-1)*2 else: y=12 輸出應付款 y 偽代碼是一種類似於機器語言,但又不受語法約束的代碼。這種語言是無法被機器執行的。主要使用對象是設計師和程序員,用來表達在編碼前對算法執行過程中的一些想法。 4. 它對應的程序設計語言: import math x=float(input(“請輸入包裹的重量:”)) if(x>1): y=12+(x-1)*2 else: y=12 print(“您應付的快遞費為:”,y) 程序設計語言是計算機能夠執行的語言,有嚴格的語法和格式規範,需要專門的學習才能掌握。 | 講解算法的概念,同時強調算法對於程序設計的重要性。 通過具體的小例子,讓學生理解算法的基本特徵的意義,在設計算法時,明確什麼樣的算法是合理的,什麼樣的是不合理的。 通過變頻空調的例子,讓學生理解算法的三要素,以及三要素之間如何協調工作。 通過任務1培養學生根據解決問題的需要,自覺、主動地獲取與處理信息的信息意識,隨後對熱量消耗問題進行抽象與建模,得到解決該問題的計算模型。 通過同一個算法的不同的四種描述方法,讓學生掌握四種描述方法,並理解他們的不同之處,知道在什麼情況下使用什麼描述方法更合適。 | |
課堂小結 | 知識梳理: 1. 算法的概念 2. 算法的特徵 3. 算法的要素 4. 算法的描述方法 | 通過回顧總結幫助學生鞏固算法的概念、特徵、要素及描述方法,使學生更牢固的掌握算法的描述及特徵。 |
- 文章版權屬於文章作者所有,轉載請註明 https://wenfanwang.com/jiaoxueziyuan/jiaoxuesheji/r1led4.html