第十五次:演算法基本概念2-問題解析與流程控制


解決問題(Problem Solutions)

在日常生活中我們常常要面對和解決不同的問題。解決問題的能力成為一項很重要的能力。那要如何培養解決問題的能力呢?首先會先學會思考問題,想清楚問題後再著手解決問題。

(1)解決問題-產生成就感

(2)解決問題方法-思考及記憶

範例

範例

Q:有了網路.電腦.手機可以查到很多的知識.為何還要記憶在大腦呢?

(3)學校教育問題

(4)提高思考(思維)效率

 

範例

圖片引用:https://www.youtube.com/watch?v=0y9JagMsuao&feature=emb_logo

https://www.youtube.com/watch?v=QHgLpADHz5w


範例-青蛙過河遊戲

解說:

運算思維(Computational Thinking;CT)

問題分解:將大問題拆解為小問題

將題目分解為左邊的青蛙和右邊的青蛙

資料來源:https://www.taodabai.com/how/652402621.html

模式識別:看問題有無規律性或存在相同的模式

每一次只能跳過一隻青蛙

抽象化:將真實問題簡化為數學問題

將青蛙標好號碼,左邊的用1,2,3表示,右邊的用4,5,6表示

演算法:對特定問題解決的步驟或流程

(1)先點擊4號青蛙,讓其往左跳。

(2)然後點擊1號青蛙,讓其跨過4號往右跳。

(3)然後點擊2號青蛙讓其往右跳。

(4)然後點擊4號青蛙讓其往左跳。

(5)然後點擊5號青蛙讓其往左跳。

(6)然後點擊6號青蛙讓其往左跳。

(7)然後點擊1號青蛙讓其往右跳。

(8)然後點擊2號青蛙讓其往右跳。

(9)然後點擊3號青蛙讓其往右跳。

(10)然後點擊4號青蛙讓其往左跳。

(11)然後點擊5號青蛙讓其往左跳。

(12)然後點擊6號青蛙讓其往左跳。

(13)然後點擊2號青蛙讓其往右跳。

(14)然後點擊3號青蛙讓其往右跳。

(15)然後點擊6號青蛙讓其往左跳。這時候就完成了題目要求的過河目的,就過關了。

程式設計:將演算法以程式語言實作出來解決問題


應用資訊科學解決問題-培養運算思維能力

(1)資訊科學演算法

A.廣義

根據韋伯字典的定義,凡是為解決某一特定問題的一步一步程序(a step-by-step procedure for solving a problem)均可以稱為演算法。

B.狹義

演算法是一個由一些步驟所構成的集合,依循這些步驟得以解決數學問題或完成計算機過程。從計算的角度給定演算法的嚴謹定義如下:

有限(finite) 步驟(step) 所構成的集合,依照給定輸入(input) 依序執行每個明確(definite)有效(effective) 的步驟,以便能夠解決特定的問題;而步驟的執行必定會終止(terminate),並產生輸出(output)

(2)資訊科學演算法的特性

正確的演算法,應該能夠將輸入的資料,經過電腦有限次的運算後,得到所要的輸出資料, 且要完全符合以下五個特性

實作1-井字( Tic-Tac-Toe)遊戲

參考資料

Q:思考一下:在和電腦玩井字遊戲中,你是如何取勝(如何贏電腦)?

實作2-資訊科學經典演算法-河內塔(Tower of Hanoi)

遊戲活動說明:

試完成河內塔遊戲。在進行解決問題中, 留意自己的步驟(最小步數)及所採取之策略

說明1說明二