Upload
rose-horn
View
48
Download
0
Embed Size (px)
DESCRIPTION
ch5 問題解決. 國立台中二中 劉洲溶. 課綱節數: 10(2 學分 )—26(4 學分 ). 5-1 電腦解題概論. 5-1-1 電腦解題簡介 5-1-2 電腦解題在各領域應用. 教學目標. 認識垂直式思考及水平式思考。 了解電腦的特性適合垂直式思考之解題。 能以循序漸進的流程提出解決問題的可能方法。 培養學生分析問題及解決問題的能力。. 垂直式思考 VS 水平式思考. 垂直思考具有選擇性,水平思考則具有創造性。 垂直思考乃序列性 step by step ,水平思考則為跳躍式。 垂直思考必須通常有正確解答,水平思考則無對錯之分。 - PowerPoint PPT Presentation
Citation preview
ch5ch5 問題解決問題解決
國立台中二中 劉洲溶國立台中二中 劉洲溶
• 課綱節數: 10(2 學分 )—26(4 學分 )
5-15-1 電腦解題概論 電腦解題概論 • 5-1-1 電腦解題簡介• 5-1-2 電腦解題在各領域應用
教學目標教學目標• 認識垂直式思考及水平式思考。• 了解電腦的特性適合垂直式思考之解題。• 能以循序漸進的流程提出解決問題的可能
方法。• 培養學生分析問題及解決問題的能力。
垂直式思考垂直式思考 VSVS 水平式思考 水平式思考 • 垂直思考具有選擇性,水平思考則具有創造性。• 垂直思考乃序列性 step by step ,水平思考則為跳躍式。• 垂直思考必須通常有正確解答,水平思考則無對錯之分。• 垂直思考依循最有可能的途徑,水平思考則探索最不可
能的。• 垂直思考是的確定的,水平思考則和機率有關。• 垂直思考像是用來把同一個洞挖得更深,而水平式思考
則是在別的地方另外挖洞。
水平思考法實例:水平思考法實例:• 寫出能想到有關「電燈泡」的所有用途?
水平思考法實例:水平思考法實例:• 問題:父母親攜帶兩個孩子去學校辦理新
生入學手續。這兩個孩子的臉幾乎一模一樣,出生的年月日都相同,而且是同一父母生的。老師問:「你們兩是雙胞胎嗎」?「不是。」兩個孩子異口同聲的回答。老師奇怪了。這是怎麼一回事。
垂直思考法實例:垂直思考法實例: • 食譜:方法• 廚師:電腦
菜名:水餃材料:冷水麵糰 400 公克豬絞肉 320 公克薑 8 公克蔥 12 公克高麗菜或韭菜 200 公克調味料:鹽 3 公克雞精粉 4 公克細砂糖 3 公克醬油 10 ㏄料理米酒 10 ㏄水 50 ㏄白胡椒粉 1 茶匙香油 1 大匙做法:1. 冷水麵糰分割成每個重約 10 公克的小麵糰,再分別桿圓、桿薄成水餃皮備用。2. 薑切末、蔥切碎;高麗菜洗淨後切丁,用 1 公克的鹽抓勻,醃漬約 10 分鐘後,擠去水分備用。3. 豬絞肉放入鋼盆中,加入鹽後攪拌至有黏性,再加入雞精粉、細砂糖及醬油、料理米酒拌勻後,將 50㏄的水分兩次加入,邊加水邊攪拌至水分被肉吸收,最後再加入作法 2 的高麗菜、蔥碎、薑末、白胡椒粉及香油拌勻成內餡。4.取作法 1 水餃皮一張,包入 15 公克的作法 3內餡,包起捏緊封口成水餃。5.燒一鍋水,水開後放入作法 4包好的水餃,以小火煮約 5 分鐘,至水餃浮起呈鼓鼓狀即可。
電腦的特性電腦的特性• 計算速度快• 準確• 處理資料量大• 不會自主式思考
適合用電腦解決的問題適合用電腦解決的問題• 大量資料的計算、比對、搜尋• 步驟明確• 例如:排序、搜尋、…•
不適合用電腦來解決的問題不適合用電腦來解決的問題• 純機率問題• 和人有關• 和情意• …
電腦解題在各領域應用實例:電腦解題在各領域應用實例:• 路線指引• 資料壓縮• 輾轉相除法、萬年曆問題 (閏年問題 )• 求質數問題 (質因數分解 )離散數學問題• 益智遊戲 --http://www.csie.ntnu.edu.tw/~linss/• 網路資料搜尋• 網路訂票系統• …
5-25-2 電腦解題程序 電腦解題程序 • 5-2-1 問題分析• 5-2-2 解題方法設計• 5-2-3測試與修正
學習目標學習目標 • 初步認識可運用之電腦解題工具。• 了解電腦解題程序中問題分析的方法。• 熟悉電腦解題程序中解題方法設計。• 了解電腦解題程序中以工具測試與修正方
法。• 建立學生程式設計的基本觀念。
分析問題分析問題• 已知的資料、狀況和條件• 要達成的目標• 可用的資源• 問題的限制範圍
解決問題實例一 解決問題實例一 • 例:四個連續整數的乘積為 3204,求此四數 ?
– 四數中,沒有 10 ( 否則個位數是 0 ) – 至少有一數小於 10 ( 否則乘積大於四位數 ) – 四數皆小於 10 ( 因為四數不包含 10 ) – 四數中沒有 5 ( 否則個位數是 5 或 0 )
解決問題實例二解決問題實例二• 假設只有兩個小水桶,一個容積為 4 公升,
另一個是 9 公升,要如何從河中舀出 6 公升的水。
解決問題實例三解決問題實例三• 請列出求 2 到 30 之間所有的質數。
問題分析問題分析
質數定義:除了 1與數字本身沒有其它因數的自然數,稱為質數因數範圍:任一自然數 N , N 之最大的質因
數為小於或等於 SQR(N)
輸入:一個數字輸出:一數列
N
解題方法設計解題方法設計
• (1)先列出 2 到 30 所有數字,已知 2 為質數, 30 的最大因數為小或等於sqr(30) 。故 30 的最大因數為 5 。
• (2)找出 2的倍數,然後將所有 2的倍數改為 0,然後列印輸出數字 2。產生新的一串數字中,第一個非 0的數字是 3, 3即為質數。
• (3)找出 3的倍數,然後將所有 3的倍數改為 0,然後列印輸出數字 3。產生新的一串數字中,第一個非 0的數字是 5, 5即為質數。
• (4)找出 5的倍數,然後將所有 5的倍數改為 0,然後列印輸出數字 5。
• (5)產生新的一串數字中,列印輸出所有非 0的數字。所有列印輸出的數字為即為 2到 30 之間所有的質數。
解題流程解題流程• (1) 列出 2 到 30 所有數字• 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9 、 10 、 11 、 12 、 13 、 14 、 15 、 16 、 17 、 18 、 19 、 20 、 21 、 22 、
23 、 24 、 25 、 26 、 27 、 28 、 29 、 30• (2)找出 2 的倍數,然後將所有 2 的倍數改為 0 ,然後列印輸出數字。產生新的一串數字中,第一個非 0 的數字是 3 ,
3即為質數。• 0 、 3、 0 、 5 、 0 、 7 、 0 、 9 、 0 、 11 、 0 、 13 、 0 、 15 、 0 、 17 、 0 、 19 、 0 、 21 、 0 、 23 、 0 、
25 、 0 、 27 、 0 、 29 、 0 。• 列印輸出結果: 2• (3)找出 3 的倍數,然後將所有 3 的倍數改為 0 ,然後列印輸出 3 數字。產生新的一串數字中,第一個非 0 的數字
是 5 , 5即為質數。• 0 、 0 、 0 、 5、 0 、 7 、 0 、 0 、 0 、 11 、 0 、 13 、 0 、 0 、 0 、 17 、 0 、 19 、 0 、 0 、 0 、 23 、 0 、 2
5 、 0 、 0 、 0 、 29 、 0 。• 列印輸出結果: 2、 3• (4)找出 5 的倍數,然後將所有 3 的倍數改為 0 ,然後輸出 5 。• 0 、 0 、 0 、 0 、 0 、 7 、 0 、 0 、 0 、 11 、 0 、 13 、 0 、 0 、 0 、 17 、 0 、 19 、 0 、 0 、 0 、 23 、 0 、 0 、
0 、 0 、 0 、 29 、 0 。• 列印輸出結果: 2、 3、 5• (5)產生新的一串數字中,列印輸出所有非 0 的數字。所有列印輸出的數字為即為 2 到 30 之間所有的質數。• 列印輸出結果: 2、 3、 5、 7、 11、 13、 17、 19、 23、 29
測試與修正測試與修正• 以 google 計算工具進行測試(順帶介紹雲端運算之概念 , 以電腦解決問題,
不一定是個人電腦,也可能是 browser 加上遠端伺服器 )
=IF(MOD(A1,$A$1)=0,0,A1)
=IF(MOD(A2,$B$2)=0,0,A2)
= IF(MOD(A3,$D$3)=0,0,A3)
實作練習實作練習• 閏年判斷• 以逼近法求根號 N
5-35-3 演算法概論 演算法概論 • 5-3-1演算法特性• 5-3-2演算法表示方法• 5-3-3資料結構與演算法• 5-3-4演算法與電腦解題
教學目標教學目標• 了解何謂演算法。• 認識演算法表示方法。• 了解程式設計與資料結構與演算法的關係。• 培養以演算法思考解決問題的能力。
演算法示例一演算法示例一• 河內塔• f(n)=2*f(n-1)+1
演算法示例二演算法示例二• 閏年的判定
– 解題步驟如下:輸入 N ,先看看 N 能否被 4整除,若是不能被 4整除,則不是閏年,若是 N 能被 4整除但不能被 100整除,是閏年;若是能被 4整除,又能被 100整除,但不能被 400整除,則不是閏年,若是能被 4整除,又能被 100整除,又能被 400整除,是閏年。
演算法的特性 演算法的特性 • 1.完整性 :要有輸入,並且至少一個的輸出當結果。
• 2. 明確性 :演算法中的程序代表的涵義須明確且可行,不能有模糊不清的情況。
• 3. 可決定性 ( Deterministic):在明確而定義清楚的程序被執行後,演算法所達到的結果應該是可預期的。
• 4. 有限的 ( Finite):演算法必須要能在有限的步驟內完成或終止,而且所使用的資料量也是有限的。
演算法表示方法 演算法表示方法 • 代數的表示法• 表格式的表示法 • 虛擬碼表示法 • 流程圖表示法
結構化的演算法 結構化的演算法 • 循序結構• 選擇結構• 重覆結構
資料結構與演算法 資料結構與演算法 • 「變數」的意義• 「變數」與演算法
– 例:( 1+2+3+…+N)的演算法?
資料結構與演算法資料結構與演算法 -- 續續• 「變數」與資料型態• 常用的資料型態介紹
– 陣列 (array)– 堆疊 (Stack)– 佇列 (Queue)– 鏈結串列 (linked list)
• 程式設計 = 「資料結構」 + 「演算法」
電腦解題之演算法實例探討 電腦解題之演算法實例探討 • 攝氏、華氏溫度換算。• BMI計算與身材判斷。 (閏年判斷 )
• 累加計算。• 逼近法求 N 的平方根。• 二分搜尋法。• 氣泡排序法。
5-45-4 電腦解題實作電腦解題實作• 5-4-1 電腦解題工具介紹
–文書處理軟體–繪圖軟體—流程圖– 程式設計–樂高機器人
流程圖繪製流程圖繪製• 「 Dia for Windows 」可用 ( 相關網站:
http://dia-installer.de/index_en.html)
• Visio—版權軟體
• Word
程式設計工具程式設計工具• Scratch
–免費– 簡單易學– 中文化
程式設計工具程式設計工具——續一續一• Flash
• VB
• Dev C++–免費
程式設計工具程式設計工具——續二續二• 機器人模組
–圖示組合式 (icon-based) 的程式環境–將抽像化為具體,增進學習動機–樂高機器人– http://robot.ice.ntnu.edu.tw/
5-4-25-4-2 解題實作解題實作• Scratch 小程式。• 文字加密。• 錢幣兌換問題。
ENDEND
敬請指教敬請指教