解决问题ProblemSolving.ppt

上传人:牧羊曲112 文档编号:6341866 上传时间:2023-10-18 格式:PPT 页数:36 大小:514KB
返回 下载 相关 举报
解决问题ProblemSolving.ppt_第1页
第1页 / 共36页
解决问题ProblemSolving.ppt_第2页
第2页 / 共36页
解决问题ProblemSolving.ppt_第3页
第3页 / 共36页
解决问题ProblemSolving.ppt_第4页
第4页 / 共36页
解决问题ProblemSolving.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

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

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

2、例:計算薪俸稅salary tax.,3,1.釐清問題(續),參考網頁:http:/www(a)累進稅率 Progressive Tax rate NET IncomeRateTax First 30,0002%600 Next 30,0008%2,400 Next 30,00014%4,200 Remainder20%7,200,4,1.釐清問題(續),(b)標準稅率 Standard Tax rate 16%標準稅 Tax=Income 16%應繳稅Tax payable=min(a,b)Net income=Income allowances應課稅入息=總收入 免稅額,5,1.釐清問題(

3、續),免稅額 allowances:(1)個人免稅額$100,000(2)父母免稅額$30,000/每人假設此程式的限制 constraint 是只計算單身人仕的薪俸稅,6,1.釐清問題(續),使用者要求 requirement specification:使用者必須為單身人仕使用者需要輸入:收入及受供養父母人數計算:個人及父母免稅額計算:累進稅及標準稅計算:薪俸稅輸出結果:3,4,5,7,2.分析問題 Problem Analysis,辨識 identify 以下各項:1.輸入inputs、格式form、輸入媒體media;2.輸出outputs、格式、輸出媒體;3.特別限制constrai

4、nts、情況、條件;4.公式Formulas or equations.,8,2.分析問題(續),以計算薪俸稅為例:1.輸入 個人收入、受供養父母人數(鍵盤輸入)2.輸出-應課稅入息、個人、父母免稅額、累進稅、標準稅、薪俸稅3.限制-$0個人收入$1,000,000、0受供養父母人數44.公式 見p.3-5,9,3.設計算法 Algorithm Design,算法是一連串(有限)的步驟當被執行時,可以提供解決問題的方案把輸入值轉化為輸出值,10,3.設計算法(續),算法必須符合以下條件:1.不含糊 Unambiguousness2.一般性 Generality1 吋=2.54 cm,n 吋=?

5、cm3.正確 Correctness4.有限的時間內Finiteness有結果,11,3.設計算法(續),為指定的問題,設計算法,必須1.可以證明它是正確的2.可以把設計寫在紙上(不單在腦中)3.可以用合適的工具去代表及記載4.人類語言natural language有許多含糊的地方5.比較合適的工具:偽代碼Pseudo-code、流程圖Flow-chart,12,3.1 算法的表示方式,偽代碼、流程圖的用途:1.溝通工具Communication e.g.users2.發展解決方案 Implemention 3.除錯和測試 Debugging&Testing4.文件編製Documention

6、作維修及擴展用途,13,3.2 偽代碼 Pseudo-code,英文+電腦語言三種控制結構:basic control constructs(1)順序控制結構 sequence(2)選擇控制結構 selection(3)迭代控制結構 repetition,14,3.2.1 順序控制結構 Sequence,一連串順序的步驟,例如:Read_Annual_Income輸入全年收入Read_No_of_Parents受供養父母人數Calculate_Net_Income計算應課稅入息Calculate_Progressive_Tax計算累進稅Calculate_Standard_Tax計算標準稅Pr

7、int_Chargeable_Tax列印薪俸稅,15,3.2.1 順序控制結構 Sequence,begin&end 表示區段開始和結束區段內句子必須有系統地縮排 readabilityCalculate_Net_Income 計算應課稅入息Parent_Allowance=No_of_Parents30000Net_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 選擇控制結構,

8、如果 Progressive_Tax=Standard_Tax 則beginTax_Payable=Progressive_Tax輸出 Tax _Payableend否則beginTax _Payable=Standard_Tax輸出Tax _Payableend,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=6

9、0000Progressive_Tax=600+(Net_income-30000)x 8%否則如果Net_income=90000Progressive_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-

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

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

12、構Sequence,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)算法轉程式(c)

13、測試數據重新檢視問題分析、算法、程式設計、翻譯、測試數據,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.除錯及測試Debug&Testing,程式測試 Program Testi

14、ng 使用大量的測試數據 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备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号