C語言第1講 程序和程序設計、算法、結構化程序設計方法_第1頁
C語言第1講 程序和程序設計、算法、結構化程序設計方法_第2頁
C語言第1講 程序和程序設計、算法、結構化程序設計方法_第3頁
C語言第1講 程序和程序設計、算法、結構化程序設計方法_第4頁
C語言第1講 程序和程序設計、算法、結構化程序設計方法_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第1講程序和程序設計 算法、結構化程序設計方法 1第一章 程序設計基本概念教學目標掌握程序及程序設計的基本概念,程序的運行過程、算法及其特點、算法的描述、C語言程序的基本結構。熟悉設計程序時應遵循的基本原則。了解利用計算機解決實際問題的過程、結構化程序設計方法并在以后的程序設計中應用并逐步熟練掌握。能將日常生活中解決一些簡單問題的步驟用算法描述。熟悉程序開發環境,學習上機基本操作。 21.1 程序與程序設計程序與程序設計程序是控制計算機運行的指令序列。程序設計就是設計、書寫及檢查程序的過程。程序設計語言程序設計語言是軟件系統的重要組成部分 程序設計語言是描述計算機指令的工具。各種程序設計語言有

2、自己的語法、詞匯。 可分為機器語言、匯編語言和高級語言三類。31. 機器語言由“0”和“1”組成的二進制表示的機器指令的集合。 例如某種類型的計算機規定以“10000000”表示一個“加法”操作,以“10010000”表示一個“減法”操作。 機器指令一般由操作碼和操作數兩個部分組成。 計算機硬件可以直接識別,因此,它的執行速度比較快。 針對一種計算機所編寫的機器語言程序,一般不能在另一種類型的計算機上運行,而且程序的編寫難度較大,修改、調試也不方便,容易出錯,程序的直觀性較差。 42. 匯編語言用能夠幫助記憶的指令助記符來代替機器指令中的操作碼,用地址符號或十進制數來代替操作數。如用“ADD”

3、表示加法操作,用“SUB”表示減法操作。 比機器語言直觀,容易記憶和理解,編寫的程序比機器語言程序易讀、易檢查、易修改 不同類型的計算機,匯編語言源程序不能通用。 必須由一種專門的翻譯程序(匯編程序)將匯編語言源程序翻譯成機器語言程序,計算機才能執行。 53. 高級語言面向問題的程序設計語言 與具體的計算機硬件無關,其表達方式接近于被描述的問題,接近于自然語言和數學語言,易為人們接受和掌握。 其顯著特點是獨立于具體的計算機硬件,通用性和可移植性好。 計算機高級語言已有上百種之多,得到廣泛應用的也有十幾種,并且幾乎每一種高級語言都有其適用的領域。C語言是其中之一。64. 程序運行過程編輯處理 通

4、過編輯程序將編寫的源程序送入計算機。語言處理 將用戶編寫的源程序轉換成機器語言的形式,以便計算機能夠識別和運行。由翻譯程序自動完成的,翻譯程序除了要完成語言間的轉換外,還要進行語法、語義等方面的檢查。裝配鏈接處理 裝入內存運行75. 語言處理語言處理程序一般可分為:匯編程序編譯程序解釋程序這三種類型85. 語言處理匯編由匯編程序(一種由專業的軟件開發商提供的系統軟件)將用匯編語言編寫的源程序翻譯成目標程序(某種類型計算機的機器語言程序),這一過程稱為匯編。9編譯由編譯程序將高級語言源程序翻譯成目標程序。10語言處理(續)解釋 由解釋程序將高級語言源程序一句一句地讀入,每讀入一個語句都要對它進行

5、分析和解釋,若有錯誤就即時中斷其解釋過程,并通知用戶進行修改,若沒有錯誤就按照解釋結果執行所要求的操作。解釋方式不產生目標程序。 116. 程序設計基本原則正確性 程序本身必須具備且只能具備程序設計規格說明書中所列舉的全部功能。它是判斷程序質量的首要標準。 可靠性 程序在多次反復使用過程中不失敗的概率。簡明性 簡明性的目標是要求程序簡明易讀。 有效性 程序在計算機上運行需要使用一定數量的計算機資源,如CPU的時間、存儲器的存儲空間。有效性就是要在一定的軟、硬件條件下,反映出程序的綜合效率。可維護性 程序的可維護可分為校正性維護、適應性維護和完善性維護。一個軟件的可維護性如何直接關系到程序的可用

6、性,因此應特別予以關注。可移植性 程序主要與其所完成的任務有關,但也與它的運行環境有著一定的聯系。軟件的開發應盡可能遠離機器的特征,以提高它的可移植程度。 127.用計算機解決問題的基本步驟一般由分析問題、建立數學模型、選擇合適算法、編寫程序、調試、運行程序直至得到正確的結果等幾個階段所組成。 設計步驟 確定要解決的問題。主要目的是搞清楚“做什么”。算法設計與數據結構設計。主要任務是解決“如何做” 。涉及兩個方面的內容,一是數據結構設計(解決數據的表示與存儲),另一個是算法設計(描述操作步驟)。編寫程序和調試程序。整理資料,交付使用。131.2 算法計算機算法是為計算機解題設計的有明確意義的運

7、算步驟的有限集合。算法可以用不同的方法表示。常用的有自然語言、傳統流程圖、結構化流程圖、偽代碼等。算法的特點有窮性確定性有效性有零個或多個輸入有一個或多個輸出141簡單算法舉例例1.1 給出求x1+x2+x3+x4+x5 的值的算法。 算法分析:(1)手工計算步驟為: 求x1與x2的和,得到兩個數之和; 將上一步的和與x3相加,得到三個數之和; 將上一步的和與x4相加,得到四個數之和; 將上一步的和與x5相加,得到五個數之和。從手工計算過程中可知:其運算方法類似于用算盤計算該題的過程,每次僅求出兩個數之和,其中一個加數為上一步所得的結果,另一加數為多項式中的一項,重復這個過程,直到加到最后一項

8、為此。 15 該算法能更加簡潔地表達上述解題過程,并具有通用性。先定義幾個變量:設置變量s表示多項式之和,其初值為零;設置變量a表示多項式中的一項,它的值可以為x1,x2,x5;用i記錄被加了幾次,其初值為1。解題步驟為: s 0; i 1; a xi; (使a等于多項式中的第i項) s s+a; (求和,并將結果保留在s中) i i+1; (計數增值) 若i 5,則重復、各步;否則,計算結束; 輸出s。 (2)適合計算機處理的算法。162. 算法描述用自然語言表示通俗易懂、直觀、容易掌握,但算法的表達與計算機的高級語言形式差距較大,通常用在較簡單的問題中。 用偽代碼表示 不在計算機上實際執行

9、,僅僅用于程序員使用C等程序設計語言編寫程序之前幫助其構思,而且與自然語言相似,非常方便和友好。 用傳統流程圖表示 直觀,設計者的思路表達得清楚易懂,便于檢查修改。 17傳統流程圖常用的符號18例1.2 輸入一個整數,將它倒過來輸出用自然語言描述: 輸入一個整數送給x; 求x除以10的余數,結果送給d,并輸出d ; 求x除以10的整數商,結果送給x; 重復 ,步,直到x變為零時終止。用偽代碼描述: 輸入一個整數送x; while(x 0)do d=x%10; 輸出d; x=x/10; 定義變量X輸入一個數給Xx0?d=x%10;輸出d;x=x/10;程序結束否是19例1.3 求出這100個數的

10、累加和、最大值和最小值 從鍵盤輸入100個數,求出這100個數的累加和,并找出它們的最大值和最小值。試用傳統流程圖描述解決這個問題的算法。ABCABC201.3 結構化程序設計方法設計程序時只能使用順序、選擇、循環三種基本結構。 結構化程序設計強調程序設計風格和程序結構的規范化,提倡清晰的結構。 結構化程序設計方法的基本思路是,把一個復雜問題的求解過程分階段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。 (1)自頂向下; (2)逐步細化; (3)模塊化設計;(4)結構化編碼。 211. 三種基本結構(1)只有一個入口。(2)只有一個出口。(3)結構內的每一部分都有機會被執行到。(

11、4)結構內不存在“死循環”(無終止的循環)。處理1處理2(a) 順序結構條件處理(c) 循環結構滿足不滿足條件處理1處理2(b) 選擇結構滿足不滿足222. NS流程圖N-S流程圖由美國學者I.Nassi和B. Shneiderman提出的一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線,禁用程序的轉向語句,將全部算法都寫在一個矩形框內,因此,N-S流程圖也叫盒圖。 處理1處理2(a) 順序結構條件處理1 處理2成立不成立(b) 選擇結構當條件成立時處理直到條件成立為止處理(c) 循環結構23例1.4 從鍵盤輸入一個整數,判別該數是否為素數 素數,也稱為質數,是指只能被1及其自身整除且大于1的

溫馨提示

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

評論

0/150

提交評論