第四章程序設計基礎_第1頁
第四章程序設計基礎_第2頁
第四章程序設計基礎_第3頁
第四章程序設計基礎_第4頁
第四章程序設計基礎_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 程序程序:計算任務的:計算任務的處理對象處理對象和和處理規(guī)則處理規(guī)則的描述。的描述。 處理對象處理對象:指數據和信息。:指數據和信息。 處理規(guī)則處理規(guī)則:指處理動作和步驟。:指處理動作和步驟。 4-2 一、什么是程序一、什么是程序 程序程序:能實現特定功能的一組能實現特定功能的一組指令指令序列的集合。序列的集合。 指令:指令:機器指令、匯編語言機器指令、匯編語言命令、命令、高級語言語句高級語言語句 自然語言描述的運算或操作自然語言描述的運算或操作行為行為。 程序程序是程序設計或軟件中最基本的概念。是程序設計或軟件中最基本的概念。 程序是軟件的本體,又是軟件的研究對象程序是軟件的本體,又是軟件

2、的研究對象。 程序的質量決定軟件的質量。程序的質量決定軟件的質量。 4-3 二、程序設計二、程序設計 程序設計的基本過程程序設計的基本過程: 分析問題,明確任務;分析問題,明確任務; 建立數學模型,選擇合適的解決方案;建立數學模型,選擇合適的解決方案; 確定數據結構和算法;確定數據結構和算法; 編寫程序;編寫程序; 調試程序;調試程序; 整理文檔,交付使用。整理文檔,交付使用。 程序設計程序設計又稱又稱編程編程,是指設計、編制和調試程序的,是指設計、編制和調試程序的 方法與過程,或研究、開發(fā)上述方法與過程中所涉及的方法與過程,或研究、開發(fā)上述方法與過程中所涉及的 理論、原則及技術的學科。理論、

3、原則及技術的學科。 程序設計程序設計:計算機解決問題的全過程。:計算機解決問題的全過程。 4-4 程序設計語言程序設計語言:用于書寫計算機程序的語言。:用于書寫計算機程序的語言。 文章文章漢語、英語漢語、英語字、詞、語法結構字、詞、語法結構寫文章寫文章 程序程序計算機語言計算機語言數據表示、表達式數據表示、表達式 語句結構語句結構 編程序編程序 計算機語言計算機語言:計算機所能夠識別的語言。:計算機所能夠識別的語言。 程序設計語言計算機語言程序設計語言計算機語言 4-5 計算機語言的分類計算機語言的分類 應用范圍應用范圍 通用語言、專用語言通用語言、專用語言 系統程序設計語言、科學計算語言系統

4、程序設計語言、科學計算語言 事務處理語言、實時控制語言事務處理語言、實時控制語言 程序設計程序設計 方法方法 結構化語言結構化語言 模塊化語言模塊化語言 面向對象語言面向對象語言 與硬件的與硬件的 聯系程度聯系程度 機器語言機器語言 匯編語言匯編語言 高級語言高級語言與計算機硬件基本無關與計算機硬件基本無關 依賴于計算機硬件依賴于計算機硬件( (低級語言低級語言) ) 4-6 一、機器語言一、機器語言 從本質上說,計算機只能識別從本質上說,計算機只能識別0 0和和1 1兩個數字,因此兩個數字,因此 計算機能夠直接識別的指令是由一連串的計算機能夠直接識別的指令是由一連串的0 0和和1 1組合起來

5、組合起來 的二進制編碼。的二進制編碼。 機器語言機器語言:指計算機能夠直接識別的基本指令的集:指計算機能夠直接識別的基本指令的集 合,它是以二進制代碼表示的機器指令集合。合,它是以二進制代碼表示的機器指令集合。 機器指令操作碼操作數機器指令操作碼操作數 4-7 指令序號指令序號 機器語言程序機器語言程序 指令功能指令功能 1 1 1011000010110000 0000000001110111 把一加數把一加數 7 7 送到累加器送到累加器 ALAL 中中 2 2 0000010000000100 0000100000001000 把累加器把累加器 ALAL 中的內容與另一數中的內容與另一數

6、 相加相加, ,結果仍存放在結果仍存放在 ALAL 中中 3 3 1111010011110100 停止操作停止操作 優(yōu)點優(yōu)點:占用內存少,執(zhí)行速度快;:占用內存少,執(zhí)行速度快; 缺點缺點:面向機器語言,通用性差,不易閱讀和記憶,:面向機器語言,通用性差,不易閱讀和記憶, 編程工作量大,難以維護。編程工作量大,難以維護。 例題例題 用用Intel 8086Intel 8086指令系統來編寫機器語言程序,要指令系統來編寫機器語言程序,要 求完成求完成 7+8=7+8=? 4-8 序號序號 匯編語言程序匯編語言程序 語句功能語句功能 1 1 MOV AL,MOV AL,7 7 把加數把加數 7 7

7、 送累加器送累加器 ALAL 中中 2 2 ADD AL,8ADD AL,8 把累加器把累加器 ALAL 中的內容與另一數相加中的內容與另一數相加, , 結果存入結果存入 AL,AL,即完成即完成 7 7+8+8 運算運算 3 3 HLTHLT 停止操作停止操作 優(yōu)點優(yōu)點:比機器語言程序容易閱讀和修改:比機器語言程序容易閱讀和修改 缺點缺點:面向機器語言,通用性差。:面向機器語言,通用性差。 二、匯編語言二、匯編語言 匯編語言匯編語言:用符號代替機器指令所產生的語言。:用符號代替機器指令所產生的語言。 例如,例如,80868086匯編語言對匯編語言對7+8=?7+8=?編程編程 4-9 源源

8、程程 序序:用匯編語言編寫的程序。:用匯編語言編寫的程序。 匯編程序匯編程序:負責翻譯的軟件。其主要作用是將源程序:負責翻譯的軟件。其主要作用是將源程序 轉換成用二進制代碼表示的目標程序。轉換成用二進制代碼表示的目標程序。 連接程序連接程序:將目標程序與庫文件或其他目標程序連接:將目標程序與庫文件或其他目標程序連接 起來形成可執(zhí)行程序。起來形成可執(zhí)行程序。 匯編語言源程序匯編語言源程序目標程序目標程序 可執(zhí)行程序可執(zhí)行程序 匯編程序匯編程序 連接程序連接程序 4-10 三、高級語言三、高級語言 高級語言高級語言:用接近自然語言和數學語言的語法、:用接近自然語言和數學語言的語法、 符號描述基本操

9、作的程序設計語言。符號描述基本操作的程序設計語言。 BASICBASIC、FORTRANFORTRAN、PascalPascal、COBOLCOBOL、DelphiDelphi PythonPython、JavaJava、C/C+C/C+ 例如例如7+8=?7+8=?,用,用C C語言編程:語言編程: main()main() int al; int al; al=7+8; al=7+8; 4-11 翻譯程序翻譯程序:將源程序翻譯成用二進制代碼表:將源程序翻譯成用二進制代碼表 示的目標程序。示的目標程序。 翻譯程序的工作方式翻譯程序的工作方式: 解釋方式:邊解釋邊執(zhí)行解釋方式:邊解釋邊執(zhí)行 編

10、譯方式:寫程序、編譯程序編譯方式:寫程序、編譯程序 運行程序運行程序 優(yōu)點優(yōu)點:符合人類習慣,簡單易學:符合人類習慣,簡單易學 通用性強,便于維護通用性強,便于維護 源程序源程序:用高級語言編寫的程序。:用高級語言編寫的程序。 4-12 高級語言源程序高級語言源程序執(zhí)行結果執(zhí)行結果 解釋程序解釋程序 解釋方式解釋方式 編譯方式編譯方式 可執(zhí)行程序可執(zhí)行程序 高級語言源程序高級語言源程序 編譯程序編譯程序 目標程序目標程序 連接程序連接程序 4-13 四、第四代語言四、第四代語言 程序設計語言分代程序設計語言分代: 第一代語言第一代語言/1GL/1GL:機器語言;:機器語言; 第二代語言第二代語

11、言/2GL/2GL:匯編語言;:匯編語言; 第三代語言第三代語言/3GL/3GL:面向過程的高級語言;:面向過程的高級語言; 第四代語言第四代語言/4GL/4GL:面向問題的、非過程化的語言。:面向問題的、非過程化的語言。 第四代語言第四代語言是快速開發(fā)應用軟件的各種高生產率的是快速開發(fā)應用軟件的各種高生產率的 軟件工具統稱。用戶只需告訴系統軟件工具統稱。用戶只需告訴系統“做什么做什么”,而無須,而無須 說明說明“怎么做怎么做”,系統將自動調用相應的過程,達到要,系統將自動調用相應的過程,達到要 實現的目標。實現的目標。 第四代語言第四代語言的的特點特點: 非過程化非過程化; 支持面向對象技術

12、支持面向對象技術; 圖形化圖形化、可視化可視化。 4-14 第四代語言第四代語言的分的分類類: 查詢語言和報表生成器:查詢語言和報表生成器:SQLSQL(數據庫查詢語言)、(數據庫查詢語言)、 Power BuilderPower Builder、DelphiDelphi等。等。 面向對象編程語言和網絡語言:面向對象編程語言和網絡語言:C+C+、HTMLHTML。 可視化編程語言:可視化編程語言:VBVB、VC+VC+、JavaJava。 軟件開發(fā)環(huán)境:軟件開發(fā)環(huán)境:CASECASE(計算機輔助軟件工程)、(計算機輔助軟件工程)、 RaptorRaptor(算法原型工具)。(算法原型工具)。

13、一、什么是一、什么是RaptorRaptor 4-15 Raptor(the Rapid Algorithmic Prototyping Tool for Ordered Reasoning,用于有序推理的快速算法原型,用于有序推理的快速算法原型 工具)工具)是一種基于流程圖的可視化編程環(huán)境,用它可以是一種基于流程圖的可視化編程環(huán)境,用它可以 解決具體的編程問題解決具體的編程問題。 流程圖是一系列相互連接的圖形符號的集合,每個流程圖是一系列相互連接的圖形符號的集合,每個 符號代表要執(zhí)行的特定類型的指令。符號代表要執(zhí)行的特定類型的指令。 符號之間的連接決定了指令的執(zhí)行順序。符號之間的連接決定了指

14、令的執(zhí)行順序。 與其他程序設計語言相比,與其他程序設計語言相比,RaptorRaptor語法很少。語法很少。 RaptorRaptor是可視化的,是可視化的,可以可以讓使用者看到程序語句的讓使用者看到程序語句的 控制流程。控制流程。 二、二、RaptorRaptor的符號的符號 4-16 賦值語句賦值語句:應用各類運算來更改變量的值。:應用各類運算來更改變量的值。 調用語句調用語句:調用子程序、自定義函數或:調用子程序、自定義函數或 RaptorRaptor過程。過程。 返回語句返回語句:開始和結束的符號。:開始和結束的符號。 輸入語句輸入語句:輸入數據,并將數據賦值給一個:輸入數據,并將數據

15、賦值給一個 變量。變量。 輸出語句輸出語句:顯示變量的值或保存到文件中。:顯示變量的值或保存到文件中。 選擇語句選擇語句:經過條件判斷后選擇兩種路徑之:經過條件判斷后選擇兩種路徑之 一繼續(xù)執(zhí)行。一繼續(xù)執(zhí)行。 循環(huán)語句循環(huán)語句:允許重復執(zhí)行一個或多個語句,:允許重復執(zhí)行一個或多個語句, 直到某些條件為真值。直到某些條件為真值。 三、變量和常量三、變量和常量 1.1.變量變量 4-17 變量代表內存中具有特定屬性的一個存儲單元,變量代表內存中具有特定屬性的一個存儲單元, 它用來存放數據,它用來存放數據,即即存放變量的值。存放變量的值。 一個變量應該有一個名字,以便被引用。一個變量應該有一個名字,以

16、便被引用。 變量名必須以字母開頭,可以包含字母、數字和變量名必須以字母開頭,可以包含字母、數字和 下劃線,但不能有空格或其他特殊字符。下劃線,但不能有空格或其他特殊字符。 RaptorRaptor變量只需在第一次使用時聲明變量只需在第一次使用時聲明即可即可。 變量只能是數值類型或字符串類型。數值變量可變量只能是數值類型或字符串類型。數值變量可 以是整數,也可以是浮點數。以是整數,也可以是浮點數。 2. 2.常量常量 4-18 常量常量:在程序運行過程中,其值不能被改變的量。在程序運行過程中,其值不能被改變的量。 Raptor Raptor沒有為用戶提供定義常量的功能,而只是在沒有為用戶提供定義

17、常量的功能,而只是在 系統內部定義了若干符號表示常用的數值型常量。系統內部定義了若干符號表示常用的數值型常量。 當用戶需要時,可使用代表這些常量的符號。當用戶需要時,可使用代表這些常量的符號。 PiPi(圓周率):定義為(圓周率):定義為3.14163.1416 e e(自然對數的底數):定義為(自然對數的底數):定義為2.71832.7183 True/YesTrue/Yes(布爾值真):定義為(布爾值真):定義為1 1 False/NoFalse/No(布爾值假):定義為(布爾值假):定義為0 0 四、輸入語句四、輸入語句 4-19 輸入語句輸入語句:能使程序獲取用戶的能使程序獲取用戶的輸

18、入輸入數據。數據。 在在RaptorRaptor中,運行輸入語句時,將出現提示信息,中,運行輸入語句時,將出現提示信息, 用戶輸入的值將存儲到指定變量中。用戶輸入的值將存儲到指定變量中。 操作過程操作過程:把:把輸入符號拖拽到流程圖區(qū)域后,雙擊輸入符號拖拽到流程圖區(qū)域后,雙擊 它將彈出它將彈出 輸入輸入 對話框。對話框。 五、賦值語句五、賦值語句 4-20 賦值語句賦值語句:用于變量的初始化或計算工作,用于變量的初始化或計算工作,然后然后將將 結果值存儲到變量中。結果值存儲到變量中。 操作過程操作過程:把賦值符號拖拽到流程圖區(qū)域后,雙擊把賦值符號拖拽到流程圖區(qū)域后,雙擊 它將彈出它將彈出Ass

19、ignmentAssignment對話框。對話框。 賦值語句賦值語句格式格式: 變量變量表達式表達式 賦值語句的執(zhí)行過程是賦值語句的執(zhí)行過程是: 計算賦值語句右邊的表達式。計算賦值語句右邊的表達式。 將表達式計算結果賦予變量。將表達式計算結果賦予變量。 4-21 賦值賦值語句的表達式可以是簡單或復雜的公式,經過運語句的表達式可以是簡單或復雜的公式,經過運 算后得到一個值。算后得到一個值。 表達式可以是常量、變量與運算符和函數的組合。這表達式可以是常量、變量與運算符和函數的組合。這 里就涉及到里就涉及到RaptorRaptor內置函數、運算符以及運算優(yōu)先級別。內置函數、運算符以及運算優(yōu)先級別。

20、六、輸出語句六、輸出語句 4-22 輸輸出出語句語句:將計算結果呈現給:將計算結果呈現給用戶。用戶。 在在RaptorRaptor中,運行輸中,運行輸出出語句時,將語句時,將計算結果數據輸計算結果數據輸 出到出到 主控臺主控臺 窗口窗口。 操作過程操作過程:把:把輸輸出出符號拖拽到流程圖區(qū)域后,雙擊符號拖拽到流程圖區(qū)域后,雙擊 它將彈出它將彈出 輸輸出出 對話框。對話框。 輸出語句輸出語句的的輸出方式輸出方式: 輸出內容為純文本,用引號括起來。輸出內容為純文本,用引號括起來。 PUT Goodbye, my friend. PUT Goodbye, my friend. 輸出內容輸出內容為為初

21、始數據初始數據、對計算的描述對計算的描述和和計算結果計算結果。 PUT When the radius is +radius+ inch, then PUT When the radius is +radius+ inch, then the area= +area+ square inches. the area= +area+ square inches. 4-23 例例4-1 4-1 已知圓的半徑,求解圓的面積。已知圓的半徑,求解圓的面積。 解解 圓的面積公式:圓的面積公式:area=piarea=pi* *radius2radius2 利用利用RaptorRaptor編制求解圓面積流程

22、圖。編制求解圓面積流程圖。 4-24 一、順序結構一、順序結構 4-25 順序結構順序結構:將:將每每條條語句按順序排列,程序執(zhí)行時從語句按順序排列,程序執(zhí)行時從 StartStart語句順序執(zhí)行到語句順序執(zhí)行到EndEnd語句,箭頭連接著語句并指示語句,箭頭連接著語句并指示 程序的執(zhí)行方向。程序的執(zhí)行方向。 例例4-2 4-2 計算存款利息。計算存款利息。 有有1000010000元,想存一年。有元,想存一年。有2 2種方法可選種方法可選: 活期存款,年利率為活期存款,年利率為r1r1; 一年定期存款,年利率為一年定期存款,年利率為r2r2。 請分別計算出一年后按請分別計算出一年后按2 2種

23、方法所得到的本息和。種方法所得到的本息和。 解解 首先確定計算本息和的公式。首先確定計算本息和的公式。 活期存款一年后本息和為:活期存款一年后本息和為:p1p11000010000(1+r1)(1+r1); 定期存款一年后本息和為:定期存款一年后本息和為:p2p21000010000(1+r2)(1+r2)。 在在RaptorRaptor中編制相應的流程圖。中編制相應的流程圖。 4-26 4-27 運行結果:運行結果: 二、選擇結構二、選擇結構 4-28 選擇選擇結構結構:判斷:判斷某個條件是否滿足來決定某個條件是否滿足來決定程序的程序的執(zhí)執(zhí) 行行方向方向,即即從給定的兩種操作選擇其一。從給定

24、的兩種操作選擇其一。 RaptorRaptor選擇語句是用菱形的選擇語句是用菱形的選擇選擇符號符號表示,用表示,用Yes/NoYes/No表表 示對問題的示對問題的判斷判斷結果以及決策后程序語句的執(zhí)行結果以及決策后程序語句的執(zhí)行方向方向。 當把當把選擇符號選擇符號拖曳到編輯區(qū)域并雙擊菱形符號時,會彈拖曳到編輯區(qū)域并雙擊菱形符號時,會彈 出出 輸入選擇條件輸入選擇條件 對話框。對話框。 4-29 例例4-3 4-3 輸入輸入2 2個數個數a a、b b,要求按照從小到大的順序,要求按照從小到大的順序 顯示結果。顯示結果。 解解 因為該題比較簡單,可以直接畫出其流程圖。因為該題比較簡單,可以直接畫

25、出其流程圖。 4-30 運行結果:運行結果: 例例4-4 4-4 求求axax2 2+bx+c+bx+c0 0方程的根,方程的根,a a、b b、c c由鍵盤輸入。由鍵盤輸入。 4-31 解解 閱讀教材相關內容,思考下列問題:假如將選擇條件閱讀教材相關內容,思考下列問題:假如將選擇條件 disc0 disc=0disc=0,那么,流程圖將如何變化?,那么,流程圖將如何變化? (學生思考并回答,停留(學生思考并回答,停留3 3分鐘)分鐘) 答案答案 Yes Yes和和NoNo互換,互換, 或選擇結構兩條分支路徑的所有語句互換?;蜻x擇結構兩條分支路徑的所有語句互換。 三、循環(huán)結構三、循環(huán)結構 4-

26、32 循環(huán)循環(huán)結構結構:反復執(zhí)行某一段程序,直到某種條件滿反復執(zhí)行某一段程序,直到某種條件滿 足時才結束執(zhí)行該段程序的足時才結束執(zhí)行該段程序的一種一種結構。結構。 RaptorRaptor循環(huán)語句是用循環(huán)語句是用橢圓和菱形符號組合橢圓和菱形符號組合在一起用來表在一起用來表 示循環(huán)過程,循環(huán)次數由菱形符號中示循環(huán)過程,循環(huán)次數由菱形符號中的的表達式控制。表達式控制。 當把當把循環(huán)符號循環(huán)符號拖曳到編輯區(qū)域并雙擊菱形符號時,會彈拖曳到編輯區(qū)域并雙擊菱形符號時,會彈 出出 輸入循環(huán)條件輸入循環(huán)條件 對話框對話框,輸入判斷條件是決定循環(huán)是輸入判斷條件是決定循環(huán)是 否繼續(xù)還是退出的關鍵因素。否繼續(xù)還是退

27、出的關鍵因素。 4-33 例例4-5 4-5 求求1 12 23 3100100。 4-34 解解 累加問題,要進行累加問題,要進行100-1100-1次加法運次加法運 算,可用循環(huán)結構來實現。算,可用循環(huán)結構來實現。首先要找出首先要找出 每次累加每次累加時時的規(guī)律,后一個數是前的規(guī)律,后一個數是前個個 數加數加。因此不需要每次利用輸入語句。因此不需要每次利用輸入語句 從鍵盤錄入數據,只須在加完上一個數從鍵盤錄入數據,只須在加完上一個數 i i后,使后,使i i加加就可得到下一個數。就可得到下一個數。 運行結果:運行結果: 例例4-64-6百錢買百雞問題。百錢買百雞問題。在例在例3-43-4 的基礎上對流程圖進行的基礎上對流程圖進行修修改,使它改,使它 適應適應RaptorRaptor編程環(huán)境。編程環(huán)境。 4-35 解解 閱讀教材相關內容,思考并閱讀教材相關內容,思考并 填充流程圖中處空格。填充流程圖中處空格。 (學生思考

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論