資源描述:
《計算機基礎(chǔ)自學(xué)算法,偽代碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、通過計算機解決問題的方法要點分析問題圖:問題的初步分析結(jié)構(gòu)圖:解決方案的總體布局和結(jié)構(gòu)IPO圖:給出模塊的輸入、處理過程和輸出算法:解決方案的指令序列內(nèi)部和外部文檔:程序相關(guān)信息測試解決方案:編程:用于輔助獲得問題解決方案的基本工具計算機能解決的問題是能通過一種算法來描述的問題。該問題可以通過一些簡單的指令序列來描述。這些指令必須用計算機能夠理解的方式書寫,計算機以程序中指定的順序執(zhí)行它們。如果這些指令以適當?shù)囊?guī)則書寫,嚴格地遵循計算機語言的語法,那么計算機就可以順利地解決問題。計算機只會簡單的按順序地執(zhí)行輸入的指令,它沒有發(fā)現(xiàn)程序中算法錯誤的能力。計算機
2、不懂人類的語言,想要計算機為人類工作,必須學(xué)習(xí)它的語言。為了讓計算機懂得我們的信息,必須提供根據(jù)規(guī)則編寫的指令。如果不指令正確,。。。如果指令的順序不正確,。。。高級計算機語言類似自然語言,當然更形式化、格式更嚴格,沒有歧義。詞法、語法、語義詞法錯誤、語法錯誤、語義錯誤同一個問題,會有多個不同的正確算法(不同效率)。同一個問題,會有多個不同的正確算法(不同程序員)。(計算機只是一臺機器,但操作它人不是。)一、分析問題(ProblemAnalysis)為了很好地解決問題,程序員應(yīng)該首先進行需求分析。分析問題的一種有效方法是它分成4個部分:1、已知
3、數(shù)據(jù)2、所需結(jié)果3、所需處理4、備選方案問題分析圖(PAC--ProblemAnalysisChart)已知數(shù)據(jù)所需結(jié)果第一部分:問題中給出的數(shù)據(jù)或用戶提供的數(shù)據(jù)。可以填寫具體的數(shù)值或數(shù)據(jù)項的名稱。第二部分:問題要求解的目標。包括需要的信息和格式。所需處理備選方案第三部分:需要對數(shù)據(jù)進行的處理。包括公式或其他形式的處理過程。第四部分:備選方案。求解思想等。問題分析圖的目的在于理清思路,它幫助程序員抓住問題中的主要數(shù)據(jù)和信息,忽略次要信息,問題分析圖是一種很有用的分析工具。例:計算一個員工的總薪水計算公式:總薪水=工作時間*單位時間薪水已知數(shù)據(jù)所需結(jié)果
4、工作時間,單位時間薪水總薪水所需處理備選方案總薪水=工作時間*單位時間薪水1、工作時間和單位時間薪水定義為常量2、工作時間和單位時間薪水定義為變量,在運行時輸入二、結(jié)構(gòu)圖(交互圖)問題求解的下一步是把一個大而復(fù)雜的問題分解為若干個子問題,稱為模塊(module),并把模塊連在一起表示出模塊間的相互關(guān)系。每個模塊完成一項功能;模塊中有一個用于控制的模塊,稱為控制模塊(controlmodule)或主模塊(mainmodule)。StructureChart,interactivityChart交互圖的繪制方法采用自上而下的方法。自上而下是把一個問題分解為若
5、干子問題,并按照從圖的頂部執(zhí)行到底部的順序來說明和闡述這些子問題。概括了整個解決方案的模塊稱為控制模塊,它控制所有的數(shù)據(jù)處理。該模塊要完成的子任務(wù)列在其下方。注意:交互圖描述了要解決的子問題,顯示出了問題各個部分之間的相互關(guān)系,但沒有給出解決方法。頂層的模塊編號最小0000下一層的模塊編號1000、2000、3000、…,遞增1000遞增的步長隨層數(shù)的降低而減少。再下一層編號以100遞增,依次類推。三、IPO圖(Input-Processing-Output)IPO圖將問題分析圖中描述的信息進一步細化。它更詳細地指出哪些數(shù)據(jù)項是輸入數(shù)據(jù),對這些數(shù)據(jù)要做
6、什么處理,哪些信息作為最終結(jié)果輸出。輸入處理模塊引用編號輸出所有的輸入數(shù)據(jù)(問題分析圖第一欄)順序列出處理過程(問題分析圖第三、第四欄)結(jié)構(gòu)圖中的模塊引用編號所有需要輸出的數(shù)據(jù)項(問題分析圖第一、第二欄)填寫順序:1、輸出;2、輸入;3、處理;例:計算員工總薪水的IPO圖輸入處理模塊引用編號輸出工作時間單位時間薪水1、輸入工作小時數(shù)2、輸入單位小時薪水3、計算薪水4、打印薪水5、結(jié)束10001000200030000000總薪水四、寫算法寫出結(jié)構(gòu)圖中每個模塊的指令序列。為了讓計算機能夠理解,指令必須遵循特定的規(guī)則書寫,這些規(guī)則后面章講解。算法綜合了結(jié)構(gòu)圖和
7、IPO圖的信息,給出了一個詳細的解決方案。算法有很多表示方法:偽代碼(pseudo-code)、流程圖、NS圖、PAD圖等。算法流程圖注解測試內(nèi)部文檔外部文檔填寫算法和流程圖的注釋、變量、注意事項,等。測試數(shù)據(jù)、測試方法算法和流程圖表格五、內(nèi)部和外部文檔內(nèi)部文檔:闡述程序的相關(guān)信息。內(nèi)部文檔可以使其他程序員在最短的時間內(nèi)讀懂程序(可讀)。包括:程序員、程序的概要說明、程序修改信息、開發(fā)該程序的注意事項等。編程的同時撰寫。外部文檔:由幫助手冊或幫助菜單組成。是為用戶編寫的。良好的外部文檔可以幫助用戶在最短的時間內(nèi)知道如何使用該系統(tǒng),并解答用戶在使用過程
8、中可能遇到的問題。包括:使用指南、輸入定義、安裝指南、命令解釋。