面向過程的程序設計與流程圖(1)._第1頁
面向過程的程序設計與流程圖(1)._第2頁
面向過程的程序設計與流程圖(1)._第3頁
面向過程的程序設計與流程圖(1)._第4頁
面向過程的程序設計與流程圖(1)._第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、面向過程的程序設計與流程圖王 璐中原工學院計算機學院2013-2程序設計的基本方法 面向過程的程序設計上學期的內容 面向對象的程序設計本學期的內容面向過程的程序設計方法 在二十世紀六七十年代,Yourdon E. 和 Constantine L. 等人借鑒工廠利用流水線組織生成的方法,提出了結構化程序開發(fā)技術,自頂向下、逐層細化地將系統(tǒng)分解成層級結構的模塊,每個模塊實現為一個函數或過程。從功能的角度分析問題,將待解決的問題分解成若干個功能模塊,每個功能模塊描述一個操作的具體過程。面向過程的程序設計方法 數據和過程分離 程序運行時,輸入的數據從一個過程流向下一個過程,這好比流水線上的生產資料和半

2、成品從一個工段到下一個工段。功能功能輸入數據輸入數據輸出數據輸出數據面向過程的程序設計方法 程序控制結構BA (順序)APB真假(選擇)PA假真(循環(huán))面向過程的程序設計方法 編程思想的描述流程圖(P36)N-S圖(P36)偽代碼自然語言步驟 根據編程思想的代碼實現必須熟練掌握c/c+語言的基本語法面向過程的程序設計方法 需要掌握的c/c+基本語法數據數據類型基本數據類型數組、結構、共用體、枚舉、指針、引用常量與變量作用域和生存期處理數據運算符和表達式流程控制函數面向過程的程序設計方法優(yōu)點:能有效地將一個較復雜的程序系統(tǒng)設計任務分解成許多易于控制和處理的子任務,便于開發(fā)和維護。缺點:可重用性差

3、、難以開發(fā)大型軟件把數據和處理數據的過程分離為相互獨立的實體,當數據結構改變時,所有相關的處理過程都要進行相應的修改。程序=(算法)+(數據結構)“自頂向下”的設計方法 自頂向下的方法是從全局走向局部、從概略走向詳盡的設計方法。自上而下是系統(tǒng)分解和細化的過程。 【例】編算法找出1000以內所有完數 找出1000之內的所有完數,并按下面格式輸出其因子:28 its factors are 1,2,4,7,14。理解問題:理解問題:例如,例如,2828的因子為的因子為1 1、2 2、4 4、7 7,1414,而,而28=1+2+4+7+1428=1+2+4+7+14。因此因此2828是是“完數完數

4、”。 這里不是要質因數,所以找到因數后也無需將其從這里不是要質因數,所以找到因數后也無需將其從數據中數據中“除掉除掉”。 每個因數只記一次,如每個因數只記一次,如8 8的因數為的因數為1 1,2 2,4 4而不是而不是1 1,2 2,2 2,2 2,4 4。(注:本題限定因數不包括這個數本。(注:本題限定因數不包括這個數本身)身)流程圖分析(1)開始依次測試每個數是否為完數輸入待測試數的范圍n=1000按格式輸出完數結束測試第i個數是否為完數令i=1(從第一個數開始)i=n是完數?按格式輸出該數YNYNi+流程圖分析(2)從1到i-1測試是否i的因子如果是,求和若和等于i,則是完數令j=1j能

5、否整除i記錄j,計算和值sumji?j+YNYsum=i?Y是完數Nfor(i=1;i=n;i+) 從流程圖到代碼 void main() 開始輸入待測試數的范圍n=1000結束令j=1j能否整除i記錄j,計算和值sumji?j+YNYNsum=i?Y令i=1(從第一個數開始)按格式輸出完數ii=nNYNi+for(j=1;ji;j+) if(i%j)=0)1)頂層算法 for(i=1;i=n;i+)判斷i是否是“完數”;是完數則按格式輸出;2)判斷是否是”完數” 的算法for(j=1;ji;j+) 找i的因子,并累加;如果累加值等于i,i是完數偽代碼(語言)分析(1)3)進一步細化判斷i是否

6、“完數”算法s=1for(j=1;ji;j=j+1) if (i%j=0) (j是i的因子) s=s+j;if (s=i) i是“完數”;偽代碼(語言)分析(2)4 4)考慮輸出格式)考慮輸出格式判斷判斷i i是否是否“完數完數”算法算法 考慮到要按格式輸出結果,應該開辟數組存儲數據考慮到要按格式輸出結果,應該開辟數組存儲數據i i的所有因子,并記錄其因子的個數,因此算法細化如下:的所有因子,并記錄其因子的個數,因此算法細化如下:定義數組定義數組a,s=1; k=0;for(j=2;ji;j=j+1)j=2;ji;j=j+1) if (i%j=0) (j if (i%j=0) (j是是i i的

7、因素的因素) ) s=s+j; ak=j;k=k+1;s=s+j; ak=j;k=k+1;if if (s=is=i) 按格式輸出結果按格式輸出結果 偽代碼(語言)分析(3)代碼如下:代碼如下:void main( ) int i,k,j,sum,a20; for(i=1;i=1000;i+) sum=1; /*兩個賦初值語句兩個賦初值語句s=1,k=0 k=0; 一定要位于外部循環(huán)的內部一定要位于外部循環(huán)的內部*/ for(j=2;ji;j+) if (i%j)=0) sum=sum+j; ak=j; k+; if(i=sum) printf(“%d its factors are : 1”

8、,i); for(j=0; jk; j+) printf(“, %d”,aj); 程序設計實例 第一學期C+期末考試題編程求一個字符串的長度函數int GetStrlen(char * str),其中str是個有效字符串,不得使用庫函數strlen。(6分)編程求100以內(包括100)的偶數之和。(6分)輸入一行文字,統(tǒng)計其中的大寫、小寫字母、空格、數字以及其他字符各是多少。(8分)有n個學生,每個學生有3門課的成績(計算機、英語、數學),從鍵盤輸入以上數據(包括學生號、姓名、三門課成績),將原有數據和計算出的平均分數保存到磁盤文件“stud”中(二進制方式)。(10分) 作業(yè) 畫出以下問題

9、的算法流程圖,然后根據流程圖寫出代碼為加強居民節(jié)水意識,某市制定了以下生活用水收費標準:每戶每月用水未超過7m3時,每立方米收費1.0元,并加收0.2元的城市污水處理費;超過7m3的部分,每立方米收費1.5元,并加收0.4元的城市污水處理費。請你寫出某戶居民每月應繳納的水費y(元)與用水量x(m3)之間的函數關系,然后設計一個求該函數值的算法,畫出程序框圖。P70(9);P98(10);P159(8);P277(5)。從面向過程到面向對象 全新的思路面向對象程序設計將數據和對數據的操作放在一起,作為一個相互依存、不可分割的整體來處理。它將對象和對象的操作抽象成類這一新的數據類型,并考慮不同對象之間的聯系和對象間的

溫馨提示

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

評論

0/150

提交評論