选择控制结构Selection课件_第1页
选择控制结构Selection课件_第2页
选择控制结构Selection课件_第3页
选择控制结构Selection课件_第4页
选择控制结构Selection课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、解決問題 Problem Solving1.釐清問題Problem Definition2.問題分析Problem Analysis3.設計算法Design of Algorithm4.發展解決方案Implementation5.除錯和測試Debugging & Testing6.文件編製Documentation1第1页,共36页。1.釐清問題 Problem Definition最重要的步驟 (問題定義)確保對問題有清晰的了解,並使用清楚精確文字描述定義問題 :要解決的是什麼問題 ?解決的方案該提供些什麼功能 ?要考慮什麼限制 constraints 或特殊情況 ?對問題的了解有多清晰,決

2、定於對問題的認識程度例: 計算薪俸稅salary tax .2第2页,共36页。1.釐清問題 (續)參考網頁: http:/.hk(a) 累進稅率 Progressive Tax rate NET IncomeRateTax First 30,0002%600 Next 30,0008%2,400 Next 30,00014%4,200 Remainder20%7,2003第3页,共36页。1.釐清問題 (續)(b) 標準稅率 Standard Tax rate 16%標準稅 Tax = Income 16%應繳稅Tax payable = min (a , b)Net income = In

3、come allowances應課稅入息 = 總收入 免稅額4第4页,共36页。1.釐清問題 (續)免稅額 allowances : (1) 個人免稅額$100,000 (2) 父母免稅額$30,000/每人假設此程式的限制 constraint 是只計算單身人仕的薪俸稅5第5页,共36页。1.釐清問題 (續)使用者要求 requirement specification: 使用者必須為單身人仕使用者需要輸入:收入及受供養父母人數計算:個人及父母免稅額計算:累進稅及標準稅計算:薪俸稅輸出結果:3,4,56第6页,共36页。2.分析問題 Problem Analysis辨識 identify 以

4、下各項:1. 輸入inputs、格式form、輸入媒體media;2. 輸出outputs、格式、輸出媒體;3. 特別限制constraints 、情況、條件;4. 公式Formulas or equations.7第7页,共36页。2.分析問題 (續)以計算薪俸稅為例:1. 輸入 個人收入、受供養父母人數 (鍵盤輸入)2. 輸出 - 應課稅入息、個人、父母免稅額、累進稅、標準稅、薪俸稅3. 限制 - $0個人收入 $1,000,000、 0受供養父母人數44. 公式 見p.3-58第8页,共36页。3.設計算法 Algorithm Design算法是一連串(有限)的步驟當被執行時,可以提供解

5、決問題的方案把輸入值轉化為輸出值9第9页,共36页。3.設計算法 (續)算法必須符合以下條件:1.不含糊 Unambiguousness2. 一般性 Generality1 吋 = 2.54 cm, n 吋= ? cm3. 正確 Correctness4. 有限的時間內Finiteness有結果 10第10页,共36页。3.設計算法 (續)為指定的問題,設計算法,必須1. 可以證明它是正確的2.可以把設計寫在紙上 (不單在腦中)3.可以用合適的工具去代表及記載4.人類語言natural language有許多含糊的地方5.比較合適的工具:偽代碼Pseudo-code、流程圖Flow-chart

6、11第11页,共36页。3.1 算法的表示方式偽代碼、流程圖的用途:1.溝通工具Communication e.g. users2.發展解決方案 Implemention 3.除錯和測試 Debugging & Testing4.文件編製Documention作維修及擴展用途12第12页,共36页。3.2 偽代碼 Pseudo-code英文+電腦語言三種控制結構:basic control constructs(1) 順序控制結構 sequence (2) 選擇控制結構 selection(3) 迭代控制結構 repetition 13第13页,共36页。3.2.1 順序控制結構 Sequen

7、ce一連串順序的步驟 ,例如:Read_Annual_Income輸入全年收入Read_No_of_Parents受供養父母人數Calculate_Net_Income計算應課稅入息Calculate_Progressive_Tax計算累進稅Calculate_Standard_Tax計算標準稅Print_Chargeable_Tax列印薪俸稅14第14页,共36页。3.2 .1 順序控制結構 Sequencebegin & end 表示區段開始和結束區段內句子必須有系統地縮排 readabilityCalculate_Net_Income 計算應課稅入息Parent_Allowance =

8、No_of_Parents30000Net_Income = Annual_Income - Parent_Allowance15第15页,共36页。3.2.2 選擇控制結構 Selection如果,則,否則 if, else & end_if :如果if 則句子 1,2,3,否則else句子 5,6,7,end_if16第16页,共36页。3.2.2 選擇控制結構如果 Progressive_Tax = Standard_Tax 則beginTax_Payable = Progressive_Tax輸出 Tax _Payableend否則beginTax _Payable = Standar

9、d_Tax輸出Tax _Payableend17第17页,共36页。3.2.2 巢狀選擇控制結構簡單的選擇 (是或否) 2-way decision-making較複雜的選擇 multi-way例如: 累進稅率(首3萬、次3萬)18第18页,共36页。3.2.2 巢狀選擇控制結構如果 Net_income = 30000則Progressive_Tax = Net_income x 2%否則如果Net_income = 60000Progressive_Tax = 600 + (Net_income - 30000) x 8%否則如果Net_income = 90000Progressive_

10、Tax = 3000 + (Net_income - 60000) x 14%否則Progressive_Tax = 7200 + (Net_income - 90000) x 20%19第19页,共36页。3.2.2 巢狀選擇控制結構多層巢狀選擇控制結構會造成渾亂可轉為簡單(2-way)選擇控制結構如果 Net_income 30000) 及 (Net_income 60000) 及 (Net_income 90000則 Progressive_Tax = 7200 + (Net_income - 90000) x 20%20第20页,共36页。3.2.3 迭代控制結構 Repetition

11、重複執行某一區段程式,直至乎合某條件為止while, do-while: 只要進行停止進行只要 進行執行句子停止進行while loop-statementsend_while21第21页,共36页。3.2.3 迭代控制結構 Repetition只要條件為真便重複執行某一區段程序直至條件為假便停止執行該區段程序可以改變條件的值否則會進入無窮廻路 infinite loop22第22页,共36页。3.2.3 迭代控制結構 Repetition輸出 “Enter positive annual income: ”輸入 Annual_Income 全年收入只要 Annual_Income = 0進行

12、輸出“Invalid不合法 annual income!”輸出“Please enter again.”輸入 Annual_Income停止進行23第23页,共36页。3.3 流程圖 Flow ChartParent_Allowance= No_of_parenetsx 30,000Progressive_Tax Standard Tax ?輸入 Annual_Income開始/結束行動Process決定Decision輸入輸出Input or Output終端Terminal常用圖形符號24第24页,共36页。3.3 流程圖 (1)句子 1句子 2句子 3順序控制結構Sequence25第2

13、5页,共36页。3.3 流程圖 (2)選擇控制結構Selection句子(則)句子(否則)條件真假26第26页,共36页。3.3 流程圖 (3)迭代控制結構Repetition句子 條件YN27第27页,共36页。3.4 偽代碼、流程圖比較28第28页,共36页。4.發展解決方案 Implementation把算法Algorithm翻譯為電腦程序Program;電腦程序是一連串有特定次序的句子statements,當被執行時,會產生解決方案solution。29第29页,共36页。4.1 程式錯誤 Programming Error3類程式錯誤:(1) 設計錯誤Design errors 原因

14、(a) 設計算法(b) 算法轉程式(c) 測試數據重新檢視問題分析、算法、 程式設計、 翻譯、測試數據30第30页,共36页。4.2程式錯誤 (2)(2) 編譯錯誤 Compilation errors語法錯誤 Syntax errors由編譯器compiler發現大都提供診斷訊息diagnostic(a) 警告 Warning messages(b) 錯誤 Error messages31第31页,共36页。4.3程式錯誤 (3)(3) 執行錯誤Run-time errors程式被執行時,由電腦發現程式試圖執行不合法動作例如:不合法存取、除零(4) 邏輯錯誤Logical errors最難發

15、現32第32页,共36页。5.除錯及測試Debug & Testing程式測試 Program Testing 使用大量的測試數據 test data sets走遍每一段程式碼 logical path嘗試去發現錯誤但不能証明它沒有錯誤例如:Net_Income = 0, 30000, 30001, 60000, 60001, 90000, 90001.33第33页,共36页。6.文件編製 Documentation有了一個可行workable, 已全面測試的程式,仍需文件編製,因為1.軟件再用 software re-use;2.參考用 for reference;3.方便日後維修 maintenance (修改、除錯

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论