資源簡介 (共15張PPT)小朋友們吃飯,每人一只飯碗,2人一只菜碗,3人一只湯碗,一共用了11個碗,算一算,一共有幾人吃飯?請你算一算,一共有多少個小朋友人吃飯。怎樣判斷答案是正確的?6人驗算6個人,每人一只飯碗,那么有6個飯碗,2人一只菜碗,那么有3個菜碗,3人一只湯碗,那么有2個湯碗6+3+2=11數學里,經常會通過驗算來驗證計算結果是否正確,那我們設計的算法如何來驗證呢?執教者:算法的有效性,可以根據算法特征來驗證流程圖描述的算法是否正確,也可以用具體數據來驗證算法的輸出結果是夠正確,還可以編寫程序在計算機上驗證算法。1根據算法特征驗證2用數據驗證算法1用計算機程序驗證根據算法特征驗證一有窮性確定性有輸出必須有確定的輸出每一步必須確定且能有效執行算法執行過程必須步驟有限,時間有限開始輸入L1 L2 L3 L4S2=L2+L4S1=L1+L3Smin=S1S2Smin=S2結束否是根據算法的特征,觀察流程圖中算法描述的步驟是否有限?根據算法的特征,觀察流程圖中算法描述的每一步是否確定可執行?根據算法的特征,觀察流程圖中算法描述中輸出是否符合要求?根據算法特征驗證一開始輸入L1 L2 L3 L4S2=L2+L4S1=L1+L3Smin=S1S2Smin=S2結束否是輸出Smin開始輸入L1 L2 L3 L4 L5 L6 L7S4=L6+L7S3=L5Smin2=S3S4Smin2=S4S2=L2+L4S1=L1+L3Smin1=S1S2Smin1=S2Smin=Smin1+Smin2輸出Smin結束否否是是根據算法的特征,觀察流程圖中算法描述的步驟是否有限?根據算法的特征,觀察流程圖中算法描述的每一步是否確定可執行?根據算法的特征,觀察流程圖中算法描述中輸出是否符合要求?根據算法特征驗證一用數據驗證算法二使用不同的測試數據來測試算法,并記錄算法的輸出結果,是檢查算法有效性的一種常用方法。170230100150503040開始輸入L1 L2 L3 L4 L5 L6 L7S4=L6+L7S3=L5Smin2=S3S4Smin2=S4S2=L2+L4S1=L1+L3Smin1=S1S2Smin1=S2Smin=Smin1+Smin2輸出Smin結束否否是是L1=170,L2=230,L3=100,L4=150L5=50,L6=30,L7=40S1=170+100=270S2=230+150=380Smin1=270380<270,不成立所以Smin1=270S3=50S4=30+40=70Smin2=5070<50,不成立所以Smin2=50Smin=270+50=320輸出320170230100150503040開始輸入L1 L2 L3 L4 L5 L6 L7S4=L6+L7S3=L5Smin2=S3S4Smin2=S4S2=L2+L4S1=L1+L3Smin1=S1S2Smin1=S2Smin=Smin1+Smin2輸出Smin結束否否是是L1=,L2=,L3=,L4=L5=,L6=,L7=S1=S2=Smin1=所以Smin1=S3=S4=Smin2=所以Smin2=Smin=輸出任務一:用數據驗證“最短距離”算法選擇表格中任一組的七小段路線的距離值,驗證能否得到最短距離的輸出結果。在左邊的框中逐步標注測試算法的過程。L1 L2 L3 L4 L5 L6 L7 Smin260 140 100 160 80 20 50300 140 80 180 70 40 50200 150 120 140 50 30 30180 130 110 190 100 50 40用計算機程序驗證算法三算法可以先編寫成計算機程序,再在計算機上進行驗證。運行代碼,輸入數值,觀察輸出結果來驗證算法。Smin1=S1if S2Smin1=S2inputL1= input (“請輸入路線L1的長度:” )輸入將輸入的數據轉換成整數類型input() 返回的數據類型是字符串類型(str)int ( )提示語用計算機程序驗證算法三Smin2=S3if S4Smin2=S4print ( “最短距離為:” , Smin )輸出中間用“,”分隔#第一組數據:260 140 100 160 80 20 50#第二組數據:300 140 80 180 70 40 50#第三組數據:200 150 120 140 50 30 30#第四組數據:180 130 110 190 100 50 40#輸入每小段路線的距離L1=int(input("請輸入路線L1的長度:"))L2=int(input("請輸入路線L2的長度:"))L3=int(input("請輸入路線L3的長度:"))L4=int(input("請輸入路線L4的長度:"))L5=int(input("請輸入路線L5的長度:"))L6=int(input("請輸入路線L6的長度:"))L7=int(input("請輸入路線L7的長度:"))#求解第一段路線的最短距離#使用距離計算模型S1=L1+L3 #計算第一條路線的距離S1S2=L2+L4 #計算第二條路線的距離S2Smin1=S1 #賦初值if S2Smin1=S2#求解第二段路線最短距離S3=L5S4=L6+L7Smin2=S3if S4Smin2=S4Smin=Smin1+Smin2 #合并兩段路線的最短距離print("最短距離為:",Smin) #輸出最短距離復制左邊的程序代碼,打開Thonny,輸入最上面幾組數據,驗證求最短距離的算法。任務二:用計算機程序驗證“最短距離”算法根據畫三角形的流程圖驗證算法計算右轉角度:a=360/n=120開始輸入邊數n=3,L=30直行L右轉a輸出軌跡結束直行L右轉a直行L右轉a計算右轉角度:a=360/n開始輸入:邊數n和邊長L直行L右轉a輸出軌跡結束重復( n )次1次1次1次重復3次計算右轉角度:a=360/n開始輸入:邊數n和邊長L直行L右轉a輸出軌跡結束重復( n )次import turtleL=int(input("請輸入要畫的多邊形邊長:"))n=a=for i in range(1, n+1):turtle.forward(L) #直行L步turtle.right(a) #右轉a度turtle.done() #輸出軌跡任務三:用計算機程序驗證“畫正多邊形”的算法復制下方的程序代碼,打開Thonny,將程序補充完整,并輸入邊長和邊數的值,驗證“畫正多邊形”算法的正確性。重復n次算法的驗證根據算法特征驗證用數據驗證用計算機程序驗證有窮性確定性有輸出使用不同數據進行測試中小學教育資源及組卷應用平臺第14課 算法的驗證教材分析:算法在實施之前要先驗證其是否有效。根據算法描述,判斷算法是否具備有窮性、確定性和有輸出三個特征,如果不符合,算法將無法被執行。在確保算法具備算法特征后,還需要用具體數據對算法進行測試。測試分為人工測試和機器測試。兩種測試方式各有有點,人工測試更便捷卻不要求掌握程序設計語言,機器測試更快速且可以短時間內完成大量數據的測試,因此兩者關系不是非此即彼,而是相輔相成。只有通過了驗證的算法,才能夠有效地被運行并解決問題。本課旨在讓學生回憶算法的特征,熟知流程圖的描述方式,體會計算機有序執行的思維模式,理解用多組數據測試算法的必要性。預設教學目標:1.知道驗證算法的三種方法;2.通過不同數據測試算法的過程,掌握用數據驗證算法;3.通過編寫程序,會用計算機程序驗證算法;4.通過對算法進行驗證,知道算法的有效性,發展計算思維。預設教學重難點:重點:掌握驗證算法有效性的方法。難點:根據解決問題的需要設計算法。預設教學課時:1課時預設教學準備:學習單、極域電子教室、課件預設教學過程:一、課堂導入1.今天上課先來看道數學題:小朋友們吃飯,每人一只飯碗,2人一只菜碗,3人一只湯碗,一共用了11個碗,算一算,一共有幾人吃飯?你能算出有多少人吃飯嗎?學生進行計算。怎樣判斷答案是正確的?不過,可以通過驗算來判斷答案是否正確。6個人,每人一只飯碗,那么有6個飯碗,2人一只菜碗,那么有3個菜碗,3人一只湯碗,那么有2個湯碗6+3+2=11通過驗算,我們發現答案是正確的。數學里,經常會通過驗算來驗證計算結果是否正確,那我們設計的算法如何來驗證呢?2.引入課題今天我們就一起來學習《算法的驗證》。二、新知建構算法的有效性,可以根據算法特征來驗證流程圖描述的算法是否正確,也可以用具體數據來驗證算法的輸出結果是夠正確,還可以編寫程序在計算機上驗證算法。【根據算法特征驗證】1.我們先來看根據算法特征驗證,那還記得算法的三大特征嗎?有窮性:算法執行過程必須步驟有限,時間有限確定性:每一步必須確定且能有效執行有輸出:必須有確定的輸出2.活動一:有三個關于計算最短距離的流程圖,但是可能有些問題,請你仔細閱讀觀察。根據算法特征驗證,在下列三個流程圖中選擇有效的算法,找出錯誤的原因。學生活動。學生小組合作討論流程圖。反饋交流:第一個流程圖沒有輸出,第二個流程圖不能結束,第三個流程圖符合算法的三個特征。3.小結:算法可以根據算法的特征來驗證,如驗證流程圖描述的算法可以通過算法執行過程的步驟是否有限、算法執行的每一步是否確定可執行、輸出是否符合規則等驗證算法的有效性。【用數據驗證算法】1.符合算法特征的流程圖就一定是正確的算法嗎?使用不同的測試數據來測試算法,并記錄算法的輸出結果,是檢查算法有效性的一種常用方法。2.活動二:用數據驗證算法。根據圖中給出的數據,結合流程圖驗證能否得出最短距離的輸出結果。我們先來看圖中的數據,請你在心中算一算最短距離的值。師生共同驗證。最后輸出的320和你心中算出來的值是否一致?3. 那請你也來用一組數據進行驗證。任務一:用數據驗證“最短距離”算法選擇表格中任一組的七小段路線的距離值,驗證能否得到最短距離的輸出結果。將過程填寫在左邊的框中。學生自主選擇任務單中的某一組數據,結合流程圖驗證輸出的結果是否正確。4.請學生詳細說一說數據的測試方法。請選擇不同數據的學生分別反饋,并說一說用數據驗證算法的優點。5.小結:剛才大家使用了不同的測試數據來測試算法,逐步標注測試算法的過程,并記錄了算法的輸出結果,這是利用數據驗證算法,是檢查算法有效性的一個非常常用方法。【用計算機程序驗證算法】1.每次我們人為地用數據進行驗證,實在是太麻煩了!怎么能夠快速得出結論呢?學生回答。是的,可以采用機器測試,這樣更加快速且可以在短時間內完成大量數據的測試。2. 算法可以先編寫成計算機程序,再在計算機上進行驗證。運行代碼,輸入數值,觀察輸出結果來驗證算法。我們一起根據流程圖來看程序的編寫。3.出示流程圖首先要輸入數據,輸入在python中用的是input函數,然后將輸入的值分別賦值給L1、L2、L3……L7。L1= input (“請輸入路線L1的長度:” )input()是輸入函數,“請輸入路線L1的長度:”是提示語,這樣我們就知道現在輸入的是L1的距離值了。但是,input() 返回的數據類型是字符串類型(str),如果直接這樣,那么就不能計算了,需要把輸入的值轉換成整數類型的值,那就要請int來幫忙了。所以可以這樣來進行賦值:L1=int(input("請輸入路線L1的長度:"))其他的賦值語句和流程圖基本一致,這里的分支結構還記得用什么來編寫?(if)是的,所以我們這樣來編寫:Smin1=S1if S2Smin1=S2別忘記冒號和縮進。同樣第二段路程的分支結構也是一樣:Smin2=S3if S4Smin2=S4最后的輸出函數使用的是print()函數,這里面可以使用兩部分,中間用,分開。4. 任務二:用計算機程序驗證“最短距離”算法復制左邊的程序代碼,打開Thonny,輸入最上面幾組數據,驗證求最短距離的算法。學生操作,嘗試并體會用計算機程序驗證算法的過程。5. 學生討論、交流。你認為用計算機程序來驗證算法有哪些優點?教師小結:利用計算機程序驗證算法,更快捷、更準確。三、拓展練習1.上一節課我們還設計了畫正多邊形的算法,現在以畫三角形為例,我們來驗證一下是否正確。根據畫三角形的流程圖驗證算法,教師邊講解,課件邊展示。2. 任務三:用計算機程序驗證“畫正多邊形”的算法復制下方的程序代碼,打開Thonny,將程序補充完整,并輸入邊長和邊數的值,驗證“畫正多邊形”算法的正確性。學生操作,并反饋交流。四、課堂小結1.本課學習回顧:驗證算法有效性的方法有哪些?2.這節課你有什么收獲?執行步驟有限根據算法特征驗證 算法可執行輸出正確算法的驗證: 用數據驗證——使用不同數據進行測試用計算機程序驗證【課后反思】21世紀教育網 www.21cnjy.com 精品試卷·第 2 頁 (共 2 頁)21世紀教育網(www.21cnjy.com)(共4張PPT)班級: 學號: 姓名:開始輸入L1 L2 L3 L4 L5 L6 L7S4=L6+L7S3=L5Smin2=S3S4Smin2=S4S2=L2+L4S1=L1+L3Smin1=S1S2Smin1=S2Smin=Smin1+Smin2輸出Smin結束否否是是L1=,L2=,L3=,L4=L5=,L6=,L7=S1=S2=Smin1=所以Smin1=S3=S4=Smin2=所以Smin2=Smin=輸出任務一:用數據驗證“最短距離”算法選擇表格中任一組的七小段路線的距離值,驗證能否得到最短距離的輸出結果。在左邊的框中逐步標注測試算法的過程。L1 L2 L3 L4 L5 L6 L7 Smin260 140 100 160 80 20 50300 140 80 180 70 40 50200 150 120 140 50 30 30180 130 110 190 100 50 40#第一組數據:260 140 100 160 80 20 50#第二組數據:300 140 80 180 70 40 50#第三組數據:200 150 120 140 50 30 30#第四組數據:180 130 110 190 100 50 40#輸入每小段路線的距離L1=int(input("請輸入路線L1的長度:"))L2=int(input("請輸入路線L2的長度:"))L3=int(input("請輸入路線L3的長度:"))L4=int(input("請輸入路線L4的長度:"))L5=int(input("請輸入路線L5的長度:"))L6=int(input("請輸入路線L6的長度:"))L7=int(input("請輸入路線L7的長度:"))#求解第一段路線的最短距離#使用距離計算模型S1=L1+L3 #計算第一條路線的距離S1S2=L2+L4 #計算第二條路線的距離S2Smin1=S1 #賦初值if S2Smin1=S2#求解第二段路線最短距離S3=L5S4=L6+L7Smin2=S3if S4Smin2=S4Smin=Smin1+Smin2 #合并兩段路線的最短距離print("最短距離為:",Smin) #輸出最短距離復制左邊的程序代碼,打開Thonny,輸入最上面幾組數據,驗證求最短距離的算法。任務二:用計算機程序驗證“最短距離”算法計算右轉角度:a=360/n開始輸入:邊數n和邊長L直行L右轉a輸出軌跡結束重復( n )次import turtleL=int(input("請輸入要畫的多邊形邊長:"))n=a=for i in range(1, n+1):turtle.forward(L) #直行L步turtle.right(a) #右轉a度turtle.done() #輸出軌跡任務三:用計算機程序驗證“畫正多邊形”的算法復制下方的程序代碼,打開Thonny,將程序補充完整,并輸入邊長和邊數的值,驗證“畫正多邊形”算法的正確性。重復n次 展開更多...... 收起↑ 資源列表 第14課 算法的驗證 教學設計.docx 第14課 算法的驗證 練習.pptx 第14課 算法的驗證 課件.pptx 縮略圖、資源來源于二一教育資源庫