問題解決.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
問題解決.ppt

Chapter 06 問題解決與演算法設計 電腦系統的階層 學習目標 判斷某個問題是否適合使用電腦解答 描述電腦問題解決過程以及將它與 Polya 的如何解決問題清單(How to Solve It list)之間建立關聯性 區分遵循演算法以及發展演算法 應用由上而下的設計方法來發展解決問題的演算法 學習目標(續) 討論下列有關問題解決的思緒(thread):資訊隱藏(information hiding)、抽象概念(abstraction)、事物命名(naming things)以及測試(testing) 6.1 問題解決 問題解決(problem solving )是指在面對使人困惑、煩惱、厭煩或尚待解決的問題時,一種尋找解答的動作 問題解決 G. Polya 於 1945 年寫了一本名為《如何解決它:數學方法的新觀念》的書 他的 “如何解決問題清單” 了解問題 規劃計劃:找出資料與未知數 [即問題] 間的關聯性 完成解題計畫 回頭檢查你所獲得的解答 “如何解決問題清單” 可應用範圍很廣泛 原來是用來解決數學問題 此清單變成可應用於所有類型的問題 Polya 清單所建議的幾個策略 發問 (注意:要會區別 problem 與 question) 尋找熟悉的事物 各個擊破 (divide and conquer) 發問... 以了解問題 關於這個問題我知道什麼? 為了找到其解答,我必須處理的資訊是什麼? 解答應該長什麼樣子? 有那些特殊情況? 我要如何判斷已找到解答? 尋找熟悉的事物 你應該不要再重新設計一台腳踏車,如果解答存在,直接使用它 某些問題會以不同的面貌一再呈現 一位好的程式設計師看一個工作(或是工作的一部份,即子工作)時,先看它之前是否已經有解答,如果是,則直接插入該解答即可 各個擊破 將一個大的問題細分成幾個我們可以處理的較小問題單位 應用了抽象的概念 各個擊破的方法可以重覆被應用(於分出之較小問題單位),一直到每個子工作都可以被處理為止 演算法 (Algorithms) 一個演算法是指在有限時間內,使用有限資料來解決一個問題或子問題的一組指令 其指令必須是明確、不含糊的 電腦上的問題解決 圖 6.3: 問題解決階段之間的互動情形 虛擬碼(Pseudocode) 利用英文(或其他語文)與程式語言格式的混合體來產生有關問題解答的明確步驟 虛擬碼(補充) 設定 COUNT ? 0 COUNT ? COUNT+1 SUM ?SUM+NUM 讀入 READ NUM 寫出 WRITE “Average=“, AVG 虛擬碼(補充) 條件判斷(內層需縮排) IF (COUNT = 0) THEN WRITE “使用者未輸入任何值” ELSE WRITE “Average =“, AVG IF (street 遺漏) THEN WRITE “輸入街道號碼及名稱,然後按歸位鍵” READ street 虛擬碼(補充) 迴圈(內層需縮排) WHILE (COUNT 10) READ NUM SUM ? SUM + NUM COUNT ? COUNT + 1 虛擬碼範例題目 請輸入 2 個數字,輸出其加總結果 請輸入 10000 個數字,輸出其加總結果 請輸入 n 的值,再輸入 n 筆數字,輸出其加總結果 請輸入未知筆數的數字,輸出其加總結果 (請通知使用者當輸入值等於 -9999 表示輸入結束) 請輸入 1 個數字,跟 100 比大小 請輸入 2 個數字,比較大小,輸出 “第 1 個數大 ” 、 “第 2 個數大 ” 、或 “兩數相等” 警察追小偷,輸入小偷車速,警察車速由 0 開始,警察車速每次加 25 ,小偷車速每次加 15,請輸出警察車速 大於小偷車速 時,警察車速 與 小偷車速 各為多少。 遵循演算法 就像 調製荷蘭酸味醃醬 的食譜 遵循演算法(續) 調製荷蘭酸味醃醬 的 虛擬碼 開發演算法 計畫必須是電腦可以執行的某種適當的型式 陳述句 迴圈 目前有兩種方法可供使用 由上而下設計 (top-down design) 物件導向設計 (object-oriented design) 6.2 由上而下設計 將問題分割成子問題 [稱為模組(modules)]的集合 建立問題與其子問題的階層式結構(hierarchical structure) 由上而下設計 這個過程持續進行,其層級數會像它用來將每個工作擴展至最小的細節部分的擴展次數一樣多 需要擴展的步驟是抽象步驟 一般範例 計畫大型派對 電腦範例 問題 建立一份包含姓名、地址、電話號碼以及電子郵件信箱的地址表單 這個表

文档评论(0)

2752433145 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档