《程序設計基礎初始編程計算機教學課件PPT》由會員分享,可在線閱讀,更多相關《程序設計基礎初始編程計算機教學課件PPT(25頁珍藏版)》請在裝配圖網上搜索。
1、1home back first prev next last 程序設計基礎程序設計基礎 01 初識編程初識編程2home back first prev next last Scratch 編程繪制正方形編程繪制正方形 什么是程序和編程什么是程序和編程 什么是編程語言什么是編程語言 編譯執(zhí)行和解釋執(zhí)行編譯執(zhí)行和解釋執(zhí)行 編譯器和解釋器編譯器和解釋器 Bug 和和 Debug Scratch 編程語言編程語言 算法和算法設計算法和算法設計3home back first prev next last 繪制一個邊長為繪制一個邊長為100的正方形的正方形究竟什么是程序?什么是編程?究竟什么是程序?
2、什么是編程?4home back first prev next last 一個文化人,他有一個仆人是聾子一個文化人,他有一個仆人是聾子 幸好他們都不是瞎子幸好他們都不是瞎子 仆人也認識幾個有限的詞匯仆人也認識幾個有限的詞匯 主人想讓仆人做點事,他應該怎么做?主人想讓仆人做點事,他應該怎么做?任務書1、.2、 5home back first prev next last 現在你就是主人,計算機就是你忠實的仆現在你就是主人,計算機就是你忠實的仆人人 你要是聰明,就將任務交給仆人去做你要是聰明,就將任務交給仆人去做 否則否則,你就自己干活,讓仆人歇著去吧,你就自己干活,讓仆人歇著去吧程序1、.2
3、、 6home back first prev next last 編程就是用人和計算機都能夠理解的語言編程就是用人和計算機都能夠理解的語言為計算機編制完成任務所需的任務書為計算機編制完成任務所需的任務書 計算機只認識計算機只認識 0 和和 1,所有任務書必須由,所有任務書必須由0 和和 1 組成,計算機才能看懂組成,計算機才能看懂 因此有兩個辦法編寫任務書因此有兩個辦法編寫任務書 直接用直接用 0 和和 1組成的語言編寫,這樣的語言叫組成的語言編寫,這樣的語言叫機器語言機器語言 用人熟悉的語言編寫任務書,然后再找一個翻用人熟悉的語言編寫任務書,然后再找一個翻譯譯7home back firs
4、t prev next last 可以用不同的語言編寫程序,完成相同的可以用不同的語言編寫程序,完成相同的任務,但是不同的語言需要不同的翻譯任務,但是不同的語言需要不同的翻譯C語言翻譯1機器語言010111JAVA語言翻譯2其它語言翻譯n8home back first prev next last 編譯執(zhí)行編譯執(zhí)行 一次將整個程序翻譯成機器語言,然后計算機執(zhí)行程序,一次將整個程序翻譯成機器語言,然后計算機執(zhí)行程序,完成任務完成任務 這時的翻譯叫這時的翻譯叫“編譯器編譯器” 任務書哪怕有一丁點任務書哪怕有一丁點“翻譯翻譯”看不懂,翻譯工作也不能看不懂,翻譯工作也不能完成,程序當然也不能執(zhí)行,這
5、時叫發(fā)生了完成,程序當然也不能執(zhí)行,這時叫發(fā)生了“編譯錯誤編譯錯誤” 解釋執(zhí)行解釋執(zhí)行 將程序翻譯一句,計算機馬上執(zhí)行一句將程序翻譯一句,計算機馬上執(zhí)行一句 這時的翻譯叫這時的翻譯叫“解釋器解釋器” 翻譯看懂一句,翻譯一句,執(zhí)行一句。遇到不懂的語句,翻譯看懂一句,翻譯一句,執(zhí)行一句。遇到不懂的語句,就會停止工作就會停止工作 解釋執(zhí)行通常會比編譯執(zhí)行慢一些解釋執(zhí)行通常會比編譯執(zhí)行慢一些9home back first prev next last任務期望任務期望結果結果編寫編寫/修改修改程序程序編譯編譯/解釋解釋執(zhí)行執(zhí)行實際執(zhí)行實際執(zhí)行結果結果編程中有很多問題會導致程序結果與期望不一致,編程中有
6、很多問題會導致程序結果與期望不一致,這些問題叫這些問題叫 bug(蟲子),檢查程序消除問題的(蟲子),檢查程序消除問題的過程叫過程叫 debug(除蟲)(除蟲) 或調試或調試10home back first prev next last 語言由一定數量的詞匯(指令集)和語法語言由一定數量的詞匯(指令集)和語法組成組成 指令告訴計算機要完成什么具體的操作(任務)指令告訴計算機要完成什么具體的操作(任務) 語法決定指令可以通過什么方式和順序組合在語法決定指令可以通過什么方式和順序組合在一起一起11home back first prev next last 語法語法 將代表指令的圖塊組合在一起的
7、方式將代表指令的圖塊組合在一起的方式 凡是允許的,就是正確的凡是允許的,就是正確的 因此,因此, Scratch 編程語言中沒有語法錯誤編程語言中沒有語法錯誤 但是在其它編程語言中,語法錯誤是初學者最但是在其它編程語言中,語法錯誤是初學者最常犯的錯誤常犯的錯誤 這也是我們?yōu)槭裁匆赃@也是我們?yōu)槭裁匆許cratch 作為第一門編程語作為第一門編程語言的一個重要原因言的一個重要原因12home back first prev next last 指令指令 分為動作、外觀、聲音、畫筆、控制、偵測、分為動作、外觀、聲音、畫筆、控制、偵測、數字和邏輯運算、變量八種類型數字和邏輯運算、變量八種類型 每類指令
8、通過不同顏色的圖塊表示每類指令通過不同顏色的圖塊表示13home back first prev next last有的指令很簡單有的指令很簡單有的指令還有參數,參數告訴有的指令還有參數,參數告訴指令任務的細節(jié),比如指令任務的細節(jié),比如10代表代表移動的距離;參數有的需要輸移動的距離;參數有的需要輸入,有的需要選擇(入,有的需要選擇(“面向面向”中用黑三角表示、畫筆顏色設中用黑三角表示、畫筆顏色設定中通過不同顏色的小正方形定中通過不同顏色的小正方形來表示)來表示)14home back first prev next last 同一任務,完成的方法有很多種,程序的寫法也同一任務,完成的方法有很
9、多種,程序的寫法也有很多種;有很多種; 學會使用學會使用“重復執(zhí)行重復執(zhí)行”,當主人才會很輕松,當主人才會很輕松 “重復執(zhí)行重復執(zhí)行”和其內部指令構成和其內部指令構成“循環(huán)結構循環(huán)結構”15home back first prev next last 從一個點,沿著某個方向出發(fā),經過從一個點,沿著某個方向出發(fā),經過n次旋次旋轉又回到原來的方向,總共旋轉了多少度?轉又回到原來的方向,總共旋轉了多少度?360度,對不對?度,對不對?16home back first prev next last 正方形旋轉了正方形旋轉了4次,每次旋轉角度相同,因次,每次旋轉角度相同,因此每次旋轉此每次旋轉90度度
10、 正三角形需要旋轉幾次?每次旋轉多少度?正三角形需要旋轉幾次?每次旋轉多少度?17home back first prev next last 因為正多邊形,假設有因為正多邊形,假設有n個邊,每次旋轉的個邊,每次旋轉的角度都是相同的,所以每次旋轉的角度等角度都是相同的,所以每次旋轉的角度等于于 360/n ,對不對?現在明白了嗎?,對不對?現在明白了嗎?18home back first prev next last 每次前進一小步,旋轉一個小角度,走下來就是每次前進一小步,旋轉一個小角度,走下來就是圓。對不對?圓。對不對? 實際畫的是邊長為實際畫的是邊長為2的正的正180邊形。直與曲是可以邊
11、形。直與曲是可以相互轉換的。直線短了,就變?yōu)榍?。曲線長了,相互轉換的。直線短了,就變?yōu)榍?。曲線長了,就變?yōu)橹薄6贾赖厍蚴菆A的,但我們的馬路很就變?yōu)橹?。都知道地球是圓的,但我們的馬路很直,對不對?直,對不對?19home back first prev next last 把任務分解為計算機可以理解的,能夠按把任務分解為計算機可以理解的,能夠按照一定順序執(zhí)行的步驟或操作的過程,叫照一定順序執(zhí)行的步驟或操作的過程,叫算法設計算法設計 算法:完成任務所需要的,由計算機可以算法:完成任務所需要的,由計算機可以理解的基本操作及規(guī)定的執(zhí)行順序所構成理解的基本操作及規(guī)定的執(zhí)行順序所構成的完整的解題步驟的完
12、整的解題步驟 編程的核心是編程的核心是“算法設計算法設計”,你認為這種,你認為這種說法對嗎?說法對嗎?20home back first prev next last 1、有窮性、有窮性 算法的有窮性是指算法必須能在執(zhí)行有限個步算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止,能夠結束,不能夠無限執(zhí)行下去驟之后終止,能夠結束,不能夠無限執(zhí)行下去 2、確切性、確切性 算法的每一步驟必須有確切的定義,必須是計算法的每一步驟必須有確切的定義,必須是計算機可理解執(zhí)行的操作算機可理解執(zhí)行的操作21home back first prev next last 3、輸入、輸入(Input) 一個算法有一個
13、算法有0個或多個輸入,以刻畫運算對象的個或多個輸入,以刻畫運算對象的初始情況,所謂初始情況,所謂0個輸入是指算法本身定出了初個輸入是指算法本身定出了初始條件始條件 4、輸出、輸出(Output) 一個算法有一個或多個輸出,以反映對輸入數一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義據加工后的結果。沒有輸出的算法是毫無意義的的22home back first prev next last 前面的程序都沒有輸入,只有輸出前面的程序都沒有輸入,只有輸出 下面的程序根據輸入的邊數畫正多邊形,下面的程序根據輸入的邊數畫正多邊形,既有輸入也有輸出既有輸入也有輸出23ho
14、me back first prev next last 5、可行性、可行性(Effectiveness) 算法中即每個步驟都可以在有限時間內完成;算法中即每個步驟都可以在有限時間內完成;(也稱之為有效性)(也稱之為有效性) 6、 高效性(高效性(High efficiency) 執(zhí)行速度快,占用資源少執(zhí)行速度快,占用資源少 7、 健壯性(健壯性(Robustness) 對不同的輸入數據都能夠響應正確對不同的輸入數據都能夠響應正確 24home back first prev next last 進入編程的世界,你會發(fā)現:進入編程的世界,你會發(fā)現: 編程語言有很多很多編程語言有很多很多 可以編程解決的問題有很多很多可以編程解決的問題有很多很多 但,算法設計的思想和技巧是不變的但,算法設計的思想和技巧是不變的 這也是我們這也是我們程序設計基礎程序設計基礎這門課中最核心這門課中最核心的內容的內容25home back first prev next last Scratch 編程繪制正方形編程繪制正方形 什么是程序和編程什么是程序和編程 什么是編程語言什么是編程語言 編譯執(zhí)行和解釋執(zhí)行編譯執(zhí)行和解釋執(zhí)行 編譯器和解釋器編譯器和解釋器 Bug 和和 Debug Scratch 編程語言編程語言 算法和算法設計算法和算法設計