46
ch5 ch5 問問問問 問問問問 問問問問問問 問問問 問問問問問問 問問問

ch5 問題解決

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

Page 1: ch5 問題解決

ch5ch5 問題解決問題解決

國立台中二中 劉洲溶國立台中二中 劉洲溶

Page 2: ch5 問題解決

• 課綱節數: 10(2 學分 )—26(4 學分 )

Page 3: ch5 問題解決

5-15-1 電腦解題概論 電腦解題概論 • 5-1-1 電腦解題簡介• 5-1-2 電腦解題在各領域應用

Page 4: ch5 問題解決

教學目標教學目標• 認識垂直式思考及水平式思考。• 了解電腦的特性適合垂直式思考之解題。• 能以循序漸進的流程提出解決問題的可能

方法。• 培養學生分析問題及解決問題的能力。

Page 5: ch5 問題解決

垂直式思考垂直式思考 VSVS 水平式思考 水平式思考 • 垂直思考具有選擇性,水平思考則具有創造性。• 垂直思考乃序列性 step by step ,水平思考則為跳躍式。• 垂直思考必須通常有正確解答,水平思考則無對錯之分。• 垂直思考依循最有可能的途徑,水平思考則探索最不可

能的。• 垂直思考是的確定的,水平思考則和機率有關。• 垂直思考像是用來把同一個洞挖得更深,而水平式思考

則是在別的地方另外挖洞。

Page 6: ch5 問題解決

水平思考法實例:水平思考法實例:• 寫出能想到有關「電燈泡」的所有用途?

Page 7: ch5 問題解決

水平思考法實例:水平思考法實例:• 問題:父母親攜帶兩個孩子去學校辦理新

生入學手續。這兩個孩子的臉幾乎一模一樣,出生的年月日都相同,而且是同一父母生的。老師問:「你們兩是雙胞胎嗎」?「不是。」兩個孩子異口同聲的回答。老師奇怪了。這是怎麼一回事。

Page 8: ch5 問題解決

垂直思考法實例:垂直思考法實例: • 食譜:方法• 廚師:電腦

菜名:水餃材料:冷水麵糰 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 分鐘,至水餃浮起呈鼓鼓狀即可。

Page 9: ch5 問題解決

電腦的特性電腦的特性• 計算速度快• 準確• 處理資料量大• 不會自主式思考

Page 10: ch5 問題解決

適合用電腦解決的問題適合用電腦解決的問題• 大量資料的計算、比對、搜尋• 步驟明確• 例如:排序、搜尋、…•

Page 11: ch5 問題解決

不適合用電腦來解決的問題不適合用電腦來解決的問題• 純機率問題• 和人有關• 和情意• …

Page 12: ch5 問題解決

電腦解題在各領域應用實例:電腦解題在各領域應用實例:• 路線指引• 資料壓縮• 輾轉相除法、萬年曆問題 (閏年問題 )• 求質數問題 (質因數分解 )離散數學問題• 益智遊戲 --http://www.csie.ntnu.edu.tw/~linss/• 網路資料搜尋• 網路訂票系統• …

Page 13: ch5 問題解決

5-25-2 電腦解題程序 電腦解題程序 • 5-2-1 問題分析• 5-2-2 解題方法設計• 5-2-3測試與修正

Page 14: ch5 問題解決

學習目標學習目標 • 初步認識可運用之電腦解題工具。• 了解電腦解題程序中問題分析的方法。• 熟悉電腦解題程序中解題方法設計。• 了解電腦解題程序中以工具測試與修正方

法。• 建立學生程式設計的基本觀念。

Page 15: ch5 問題解決

分析問題分析問題• 已知的資料、狀況和條件• 要達成的目標• 可用的資源• 問題的限制範圍

Page 16: ch5 問題解決

解決問題實例一 解決問題實例一 • 例:四個連續整數的乘積為 3204,求此四數 ?

– 四數中,沒有 10 ( 否則個位數是 0 ) – 至少有一數小於 10 ( 否則乘積大於四位數 ) – 四數皆小於 10 ( 因為四數不包含 10 ) – 四數中沒有 5 ( 否則個位數是 5 或 0 )

Page 17: ch5 問題解決

解決問題實例二解決問題實例二• 假設只有兩個小水桶,一個容積為 4 公升,

另一個是 9 公升,要如何從河中舀出 6 公升的水。

Page 18: ch5 問題解決

解決問題實例三解決問題實例三• 請列出求 2 到 30  之間所有的質數。

Page 19: ch5 問題解決

問題分析問題分析

質數定義:除了 1與數字本身沒有其它因數的自然數,稱為質數因數範圍:任一自然數 N , N 之最大的質因

數為小於或等於 SQR(N)

輸入:一個數字輸出:一數列

N

Page 20: ch5 問題解決

解題方法設計解題方法設計

• (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 之間所有的質數。

Page 21: ch5 問題解決

解題流程解題流程• (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

Page 22: ch5 問題解決

測試與修正測試與修正• 以 google 計算工具進行測試(順帶介紹雲端運算之概念 , 以電腦解決問題,

不一定是個人電腦,也可能是 browser 加上遠端伺服器 )

Page 23: ch5 問題解決
Page 24: ch5 問題解決
Page 25: ch5 問題解決
Page 26: ch5 問題解決

=IF(MOD(A1,$A$1)=0,0,A1)

Page 27: ch5 問題解決

=IF(MOD(A2,$B$2)=0,0,A2)

= IF(MOD(A3,$D$3)=0,0,A3)

Page 28: ch5 問題解決
Page 29: ch5 問題解決

實作練習實作練習• 閏年判斷• 以逼近法求根號 N

Page 30: ch5 問題解決

5-35-3 演算法概論 演算法概論 • 5-3-1演算法特性• 5-3-2演算法表示方法• 5-3-3資料結構與演算法• 5-3-4演算法與電腦解題

Page 31: ch5 問題解決

教學目標教學目標• 了解何謂演算法。• 認識演算法表示方法。• 了解程式設計與資料結構與演算法的關係。• 培養以演算法思考解決問題的能力。

Page 32: ch5 問題解決

演算法示例一演算法示例一• 河內塔• f(n)=2*f(n-1)+1

Page 33: ch5 問題解決

演算法示例二演算法示例二• 閏年的判定

– 解題步驟如下:輸入 N ,先看看 N 能否被 4整除,若是不能被 4整除,則不是閏年,若是 N 能被 4整除但不能被 100整除,是閏年;若是能被 4整除,又能被 100整除,但不能被 400整除,則不是閏年,若是能被 4整除,又能被 100整除,又能被 400整除,是閏年。

Page 34: ch5 問題解決

演算法的特性 演算法的特性 • 1.完整性 :要有輸入,並且至少一個的輸出當結果。

• 2. 明確性 :演算法中的程序代表的涵義須明確且可行,不能有模糊不清的情況。

• 3. 可決定性 ( Deterministic):在明確而定義清楚的程序被執行後,演算法所達到的結果應該是可預期的。

• 4. 有限的 ( Finite):演算法必須要能在有限的步驟內完成或終止,而且所使用的資料量也是有限的。

Page 35: ch5 問題解決

演算法表示方法 演算法表示方法 • 代數的表示法• 表格式的表示法 • 虛擬碼表示法 • 流程圖表示法

Page 36: ch5 問題解決

結構化的演算法 結構化的演算法 • 循序結構• 選擇結構• 重覆結構

Page 37: ch5 問題解決

資料結構與演算法 資料結構與演算法 • 「變數」的意義• 「變數」與演算法

– 例:( 1+2+3+…+N)的演算法?

Page 38: ch5 問題解決

資料結構與演算法資料結構與演算法 -- 續續• 「變數」與資料型態• 常用的資料型態介紹

– 陣列 (array)– 堆疊 (Stack)– 佇列 (Queue)– 鏈結串列 (linked list)

• 程式設計 = 「資料結構」 + 「演算法」

Page 39: ch5 問題解決

電腦解題之演算法實例探討 電腦解題之演算法實例探討 • 攝氏、華氏溫度換算。• BMI計算與身材判斷。 (閏年判斷 )

• 累加計算。• 逼近法求 N 的平方根。• 二分搜尋法。• 氣泡排序法。

Page 40: ch5 問題解決

5-45-4 電腦解題實作電腦解題實作• 5-4-1 電腦解題工具介紹

–文書處理軟體–繪圖軟體—流程圖– 程式設計–樂高機器人

Page 41: ch5 問題解決

流程圖繪製流程圖繪製• 「 Dia for Windows 」可用 ( 相關網站:

http://dia-installer.de/index_en.html)

• Visio—版權軟體

• Word

Page 42: ch5 問題解決

程式設計工具程式設計工具• Scratch

–免費– 簡單易學– 中文化

Page 43: ch5 問題解決

程式設計工具程式設計工具——續一續一• Flash

• VB

• Dev C++–免費

Page 44: ch5 問題解決

程式設計工具程式設計工具——續二續二• 機器人模組

–圖示組合式 (icon-based) 的程式環境–將抽像化為具體,增進學習動機–樂高機器人– http://robot.ice.ntnu.edu.tw/

Page 45: ch5 問題解決

5-4-25-4-2 解題實作解題實作• Scratch 小程式。• 文字加密。• 錢幣兌換問題。

Page 46: ch5 問題解決

ENDEND

敬請指教敬請指教