解决问题ProblemSolving00001.ppt

上传人:本田雅阁 文档编号:3170384 上传时间:2019-07-20 格式:PPT 页数:36 大小:239.02KB
返回 下载 相关 举报
解决问题ProblemSolving00001.ppt_第1页
第1页 / 共36页
解决问题ProblemSolving00001.ppt_第2页
第2页 / 共36页
解决问题ProblemSolving00001.ppt_第3页
第3页 / 共36页
解决问题ProblemSolving00001.ppt_第4页
第4页 / 共36页
解决问题ProblemSolving00001.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《解决问题ProblemSolving00001.ppt》由会员分享,可在线阅读,更多相关《解决问题ProblemSolving00001.ppt(36页珍藏版)》请在三一文库上搜索。

1、1,解決問題 Problem Solving,1.釐清問題 Problem Definition 2.問題分析 Problem Analysis 3.設計算法 Design of Algorithm 4.發展解決方案 Implementation 5.除錯和測試 Debugging & Testing 6.文件編製 Documentation,2,1.釐清問題 Problem Definition,最重要的步驟 (問題定義) 確保對問題有清晰的了解,並使用清楚精確文字描述定義問題 : 要解決的是什麼問題 ? 解決的方案該提供些什麼功能 ? 要考慮什麼限制 constraints 或特殊情況 ?

2、 對問題的了解有多清晰,決定於對問題的認識程度 例: 計算薪俸稅salary tax .,3,1.釐清問題 (續),參考網頁: http:/www.ird.gov.hk (a) 累進稅率 Progressive Tax rate NET Income Rate Tax First 30,000 2% 600 Next 30,000 8% 2,400 Next 30,000 14% 4,200 Remainder 20% 7,200,4,1.釐清問題 (續),(b) 標準稅率 Standard Tax rate 16% 標準稅 Tax = Income 16% 應繳稅Tax payable =

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

4、lysis,辨識 identify 以下各項: 1. 輸入inputs、格式form、輸入媒體media; 2. 輸出outputs、格式、輸出媒體; 3. 特別限制constraints 、情況、條件; 4. 公式Formulas or equations.,8,2.分析問題 (續),以計算薪俸稅為例: 1. 輸入 個人收入、受供養父母人數 (鍵盤輸入) 2. 輸出 - 應課稅入息、個人、父母免稅額、累進稅、標準稅、薪俸稅 3. 限制 - $0個人收入 $1,000,000、 0受供養父母人數4 4. 公式 見p.3-5,9,3.設計算法 Algorithm Design,算法是一連串(有限

5、)的步驟 當被執行時,可以提供解決問題的方案 把輸入值轉化為輸出值,10,3.設計算法 (續),算法必須符合以下條件: 1. 不含糊 Unambiguousness 2. 一般性 Generality 1 吋 = 2.54 cm, n 吋= ? cm 3. 正確 Correctness 4. 有限的時間內Finiteness有結果,11,3.設計算法 (續),為指定的問題,設計算法,必須 1. 可以證明它是正確的 2. 可以把設計寫在紙上 (不單在腦中) 3. 可以用合適的工具去代表及記載 4. 人類語言natural language有許多含糊的地方 5. 比較合適的工具: 偽代碼Pseud

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

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

8、Parent_Allowance = No_of_Parents30000 Net_Income = Annual_Income - Parent_Allowance ,16,3.2.2 選擇控制結構 Selection,如果,則,否則 if, else & end_if : 如果if 則 句子 1,2,3, 否則else 句子 5,6,7, end_if,17,3.2.2 選擇控制結構,如果 Progressive_Tax = Standard_Tax 則 begin Tax_Payable = Progressive_Tax 輸出 Tax _Payable end 否則 begin Tax

9、 _Payable = Standard_Tax 輸出Tax _Payable end,18,3.2.2 巢狀選擇控制結構,簡單的選擇 (是或否) 2-way decision-making 較複雜的選擇 multi-way 例如: 累進稅率 (首3萬、次3萬),19,3.2.2 巢狀選擇控制結構,如果 Net_income = 30000則 Progressive_Tax = Net_income x 2% 否則如果Net_income = 60000 Progressive_Tax = 600 + (Net_income - 30000) x 8% 否則如果Net_income = 900

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

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

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

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

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

15、bug & Testing,程式測試 Program Testing 使用大量的測試數據 test data sets 走遍每一段程式碼 logical path 嘗試去發現錯誤 但不能証明它沒有錯誤 例如:Net_Income = 0, 30000, 30001, 60000, 60001, 90000, 90001.,34,6.文件編製 Documentation,有了一個可行workable, 已全面測試的程式,仍需文件編製,因為 1. 軟件再用 software re-use; 2. 參考用 for reference; 3. 方便日後維修 maintenance (修改、除錯、增新擴展),35,6.文件編製 (續),內容包括:- 問題定義 problem definition 精確的使用者要求 user requirements 輸入輸出I/O、條件限制、公式、等 算法 Algorithm (偽代碼、流程圖) 源程式碼 Source program listing 測試樣本/結果 sample test run,36,總結,軟件開發,定義問題 認清問題,分析問題,設計算法,程序編碼,除錯及測試,文件編製,偽代碼,流程圖,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1