資源簡介 (共31張PPT)第2章 算法與問題解決浙教版(2019版) 信息技術(高中)必修1 數據與計算2.1 算法的概念及描述學習目標123算法的概念。算法的特征。算法的要素。算法的描述。41里脊肉切厚一點的大片。2肉中加少許鹽、料酒腌一下。3蔥、姜、胡蘿卜切細絲。4碗中加三小勺醋、兩小勺糖、一小勺生抽兌成汁。5淀粉加適量水、一小勺食用油,調成比較稠的糊,倒入肉片中,用手抓勻。6鍋中放多一些油,油燒至七成熱時,將肉片一片片放入油里,中火炸制,炸到稍上色時撈出,等油燒熱后,重新入油鍋中炸一遍,炸至金黃撈出。7鍋內留少許底油,放入蔥姜絲、胡蘿卜絲煸炒出香味。8倒入炸好的肉片。烹入碗汁,翻炒均勻。9烹入碗汁,翻炒均勻。古代的算法主要指的是“算術”,即數值的算術運算。隨著科學技術的發展,算法的內涵和外延逐漸發生變化。古代的算法廣義地講,算法指的是解決問題或完成任務的一系列步驟。既包括傳統意義上計算任務,也可以是生活中各種事物的處理。廣義算法計算機領域內,算法指的是用計算機解決問題的步驟。是為了解決問題而讓計算機執行的有序、無歧義的,有限步驟的集合。1 、 算法的定義計算機算法拓展鏈接窮舉算法也稱枚舉算法,指的是在求解過程中,先按照一定的順序一一列所有可能的解,然后用條件判斷列舉出的可能解是否為正確解。窮舉法一般適合解決解集為離散的且范圍明確的問題。“雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買雞百,問翁、母、雛各幾何?”這是我國古代數學家在《算經》中提出的經典問題。同時,他還在書中給出了解決該問題的算法“雞翁每增四,雞母每減七,雞雛每益三,即得"。百錢買百雞窮舉算法2 算法的特征圖2.1.1 高一新生報到流程著名數學家華羅庚曾經提出“燒水泡茶問題”,水壺和杯子未洗,水未燒,但是要泡茶喝,我們該怎么辦?給出你的解決方案,寫明步驟過程。(提示:考慮一下那些事情是可以同時完成的)2、算法的特征√ 有窮性算法必須能在執行有限個步驟之后終止。√ 確定性算法中的每一次運算都有明確的定義,具有無二義性,并且可以通過計算得到唯一的結果。√ 0個或多個輸入項一個算法有0個或多個輸入。所謂0個輸入是指本身給出了初始條件。√ 1個或多個輸出項算法一定要有輸出。任何算法都不能“無功而返”。√ 可行性算法中執行的任何運算都可以在有限的時間內完成。3、算法的要素數據運算控制轉移用算法解決問題時,必須明確參與運算的初始數據、運算時產生的中間數據以及代表問題解決的結果數據。在對數據進行運算時,必須明確每一步的運算是什么、對哪些數據進行運算等。在算法執行過程中,有時需要根據數據或運算結果的特點進行不同的處理,這時就需要運用控制轉移來執行不同的操作。習題練習例1:下列關于算法的概念及描述,說法正確的是()A.算法就是數學運算方法B.算法的第一個執行步驟必須是數據輸入C.算法的一個步驟可以被執行多次D.算法只能用自然語言進行描述C 很多設備的“自動”功能,都是內部算法控制的結果。比如,在夏天把空調溫度設定在26℃(如圖2.1.4所示),每當空調內部的溫度傳感器測得室內溫度小于或等于26℃時,算法就會“告訴”空調已經到達目標溫度,可以暫停工作,空調就會“自動”暫時關閉壓縮機的運行。這樣,既確保了室內溫度,又實現了節能環保。還有很多設備用算法來幫助設備實現自動化。與同學討論交流,哪些設備來用算法實現了自動化?并嘗試說出這些設備實現自動化控制的算法。問題與討論:2.1.2 算法的描述1、用自然語言描述算法圖2.1.5 停車場中的車位探測解決本問題的算法可以用自然語言描述如下。(1)輸入變量flag的值。(2)若flag的值為1,則設置指示燈為綠色,輸出“空車位”;否則,設置指示燈為紅色,輸出“非空車位”。2、用流程圖描述算法圖形 名稱 功能開始/結束符 表示算法的開始或結束輸入/輸出 表示數據的輸入或輸出處理框 表示數據的運算處理判斷框 表示算法中的條件判斷流程線 表示算法中的流向連接點 表示算法中的轉接“N-S圖”是由美國學者納西(Nassi)和斯奈德曼(Shneiderman)提出的一種在流程圖中完全去掉流程線,全部算法寫在一個矩形框內的算法描述方式。相比于原來的流程圖描述,結構性顯得更好,也更有助于高效地編寫程序。前面車位探測中的算法,可用N-S圖表示成如下形式。輸入flag的值 指示燈綠色 指示燈紅色輸出“空車位” 輸出“非空車位”Flag=1 是否拓展鏈接:3、用偽代碼描述算法偽代碼指的是一種比較直觀簡潔的、符號接近計算機程序代碼的算法描述方式,其風格很像計算機程序設計語言,但又不是真正的可以被計算機理解的代碼。偽代碼的表示方法沒有統一、嚴格的規定,只要定義合理、表達正確即可。格式1: If條件 then(語句序列1)Else(語句序列2)格式2: If條件 then(語句序列1)格式:while條件(循環體)條件判斷語句循環語句Flag 車位探測結果; #將測得的車位當前狀態值輸入給變量flagIf flag=1 then(指示燈綠色輸出“空車位”)Else(指示燈紅色輸出“非空車位”)4、用計算機程序設計語言描述算法前面車位探測中的算法可以用C++程序設計語言描述如下:void MainWindow: :on_pushButton_clickedO{int flag=ui-> lineEdit-> textO.toIntO;if (flag==1) (ui-> label_4-> setStyleSheet ("color:green; ") ;ui-> label_4-> setText ("綠色") ;ui-> label_5-> setText ("空車位”) ;}else{ui-> label_4-> setStyleSheet ("color:red; ") ;ui-> label_4-> setText ("紅色”) ;ui-> label_5-> setText ("非空車位”) ;}}該程序的運行結果分別如圖2. 1. 7和圖2. 1. 8所示。該算法還可以用Python程序設計語言描述如下:flag=int (input (“輸入車位狀態值:") )if flag==1:print ("綠色”)print ("空車位")else:print ("紅色”)print ("非空車位")計算機程序設計語言計算機程序設計語言經歷了“機器語言一匯編語言一高級語言”的發展歷程。機器語言中的指令由“0”“1”二進制碼組成,機器執行效率高但可讀性、維護性差。為了提升編程的效率,科學家用特定的符號(助記符)來表示各個機器指令,發明了匯編語言。科學家后來又發明了高級語言,用接近人類日常用語的符號來表示各類指令。常見的高級語言有Basic、C、C++、Java、Python、Ruby等。拓展鏈接圖2.1.10 智能電飯煲燒飯算法流程圖繼續高熱燒飯變為低熱保溫思考與練習第2章 算法與問題解決浙教版(2019版) 信息技術(高中)必修1 數據與計算2.2 算法的控制結構學習目標123順序結構分支結構循環結構(1)順序結構:算法中各個步驟按照先后順序依次執行的結構。案例:網上購買火車票時,必須嚴格按照順序依次進行各個步驟。如下圖所示。網上購票算法第一個操作第二個操作第三個操作順序結構抽象(2)分支結構(選擇結構):先進行條件判斷,再根據判斷結果分別執行不同處理的控制結構。案例:判斷一元二次方程ax2+bx+c=0是否存在實數根。抽象分支1分支(條件)結構條件滿足?分支2是否(3)循環結構:在條件控制下,某些操作步驟需要重復執行(循環)的控制結構。案例:(超市收銀系統)收銀時,收銀員用掃描儀逐個掃描商品上的條形碼,隨著一連串的“滴”聲,收銀員可以快速地完成顧客所購商品的費用結算。抽象圖2.2.5 循環結構算法流程圖程序設計中的“累加器”“累加器”指的是算法執行過程中對同類事物或數據進行統計計算的實現技術。上述算法中的 Sum+X 就起到了累加的作用。算法的三種控制結構順序結構 選擇結構(又稱分支結構) 循環結構計算結果: ②處的判斷條件: 計算結果:35r=1?15智能農業大棚通過傳感器、控制器、網絡設施和計算機程序等來實現大棚的自動化管理(如圖2. 2. 8) .例如,自動溫度控制系統中的溫度傳感器每隔一定時間采集大棚中的溫度,一旦溫度超過預設的最高溫度40℃, 控制系統會啟動通風和噴水系統實現降溫;如果溫度低于預設的最低溫度18℃, 控制系統會啟動加熱器,給大棚升溫。思考與練習:圖2. 2. 8 智能農業大棚(1) 自動溫度控制系統進行溫度控制的算法用流程圖描述如圖2. 2. 9所示,請完善該流程圖,在①、②處填入合適的內容。圖2.2.9 智能農業大棚溫控系統的算法流程圖溫度超過預設的最高溫度?溫度低于預設的最低溫度?2.3 算法解決問題的過程第一步:抽象與建模1.提煉核心要素并加以確定或假設2.用數學符號描述解決問題的計算模型第二步:設計算法第三步:描述算法關鍵步驟:作業本第25頁作業本第28頁是是是否x<=4 s=2s=2+(x-4)/4x<=12 否s=6+(x-24)/8否x<=24 s=4+(x-12)/6輸入里程數x(千米)輸出總費用s(元)開始結束謝 謝!Thanks! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫