- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
95.12.22 95學年度資訊科技概論研習 問題解決--問題的表示與分析 報告人:國立台灣師大附中 李啟龍 老師 李啟龍的自我介紹 學歷: 國立台灣師範大學資訊教育研究所畢業 國立交通大學經營管理研究所畢業 國立政治大學圖書館學分班畢業 國立台灣大學資訊網路與多媒體研究所博士班 經歷: 師大附中教學組長 師大附中圖書館主任 師大附中資訊中心主任 大綱 何謂問題 問題的表示 問題的分析 演算法特性介紹 流程圖符號介紹 演算法的表示方法 實際演練 回顧與討論 何謂問題 自古至今,人類的世界便存在著各種問題,人類就是因為具備解決問題的精神與行動,不斷克服問題,才造成人類文明的不斷進步。 一般而言,所謂「問題」是指,解題者無法以原有的知識或經驗,立即加以克服的障礙。 問題解決 Zidane’s Head Zidane Problem Solving 問題的表示(1/3) 問題的初始狀態(Initial state):此狀態為問題的初始狀態,包括對問題的定義與一些特定條件或對象的描述。 問題的中間狀態(Intermediate state):此狀態為解決該問題的各種可能方法,也就是描述解決該問題的可能路徑。 問題的目標狀態(Goal state):此狀態為預期解決問題後的結果,也就是達到問題解決後的狀態。 問題的表示(2/3) 問題的表示對於不同的解題者而言,由於各個解題者的能力不同,因此有不同的問題表示狀況。 以上三種問題表示狀態的描述,如果應用在程式設計過程中,可以將初始狀態視為輸入資料,目標狀態視為輸出結果,中間狀態視為為達到目標結果的各段程式碼或演算法。 問題的表示(3/3) 問題的表示狀態圖 問題的分析 所謂「問題的解決」,就需要經過一些步驟,加以分析或推理,以求得答案。 在這個問題求解的過程中,最好能夠以有系統的邏輯思考或推理方式進行,並且妥善使用分析工具,來求得解答,最好不要以不斷嘗試錯誤法,以求得問題的解決。 在資訊科學的世界中,我們經常會使用演算法(algorithm)來表達問題的處理步驟。好的演算法,會讓問題以很有效率的方式,獲得解決;不好的演算法,會讓電腦耗費更多的時間進行運算。 演算法特性介紹 演算法具備幾個特性,我們可以根據這些特性,來檢查所設計的演算法,是否符合演算法定義與是否完整。 演算法的特性如下所述: 輸入:由外界輸入單一或多項資料。 輸出:至少有一個或多個結果輸出。 有效性:演算法需具備可行性,每一個程序步驟必須與原本推演出來的結果相符。 有限性:需避免形成無窮迴圈,演算法在設計時,必須在有限的步驟內解決。 明確性:指令與步驟必須要清楚且明確。 流程圖符號介紹(1/2) 所謂流程圖(flow chart)就是利用各種被賦予意義的圖形,包括方塊圖形、線條或箭頭等符號,來表達問題的解決步驟與程式進行的順序。 端點:表示程序的起始點或終止點。 程序:代表一個程式區塊,具備執行特定工作的能力。 決策:依條件式內容來進行條件判斷,以決定程序的下一條路徑。 程序路徑:用來表示程式的執行方向,具有方向性。 輸入輸出:用於表示資料的取得或檔案的存取。 流程圖符號介紹(2/2) 由於程式的解法並不唯一,所以繪製出來的流程圖也並不是只有一種解決方案,它通常會因人而異,不同的解決邏輯將產生不同的流程圖。 演算法的表示方法(1/2) 通常對於演算法的表示方法,以文字描述法及流程圖表示法,兩種較為常用,相關說明如下。 文字描述法:以文字描述的方式,將問題的初始狀態、中間狀態和目標狀態做一個表達與陳述,稱之為文字描述法。任何問題的演算法,大致上可以分割為三個部分,包括:(1)輸入資料 (2)處理資料 (3)輸出結果。 演算法的表示方法(2/2) 流程圖表示法:對於演算法的表示法,流程圖表示法是最常使用的方式。在進行較複雜的程式設計時,往往會藉由繪製流程圖,來輔助程式的設計。藉由流程圖的繪製,可以讓程式設計者更清楚地掌握程式的運作流程,並且對於程式的邏輯思考架構,有更深刻的瞭解。 實際演練(1/3) 寫出1+2+3+...+N之演算法則 文字描述法之參考解答: 第一步:輸入資料 (1)設和之變數名稱為Sum,並定其初始值為0,即Sum=0。 (2)設加數之變數名稱為I,並定其初始值為1,即 I=1。 (3)由鍵盤輸入加數的終值為N,且N值大於等於1。 實際演練(2/3) 第二步:處理資料 (1)將原來的Sum加上I,然後存入新的Sum,即 Sum=Sum+I。 (2)將加數I加1,即I=I+1 。 (3)判斷I是否大於N值,若是,則跳至輸出結果,否則,回到處理資料的“第一步”繼續處理。 第三步:輸出結果 (1)將運算結果Sum,依規定格式輸出到螢幕上。 (2)工作結束。
文档评论(0)