模組化程式設計的概念


模組化程式設計的概念課程脈絡

何謂模組化(Module)

教學影片

牛刀小試

Q:你可以舉出生活中那些應用模組化的觀念的實例嗎?

解說

補充說明(高中課程)

模組化的核心思想-分而治之(Divide and Conquer)演算

資料來源:Animations from Grokking Algorithms

原始影片https://goo.gl/NM3eku

範例說明:

假設你是農場主人.有一小塊土地.你要將這塊土地均分為正方形.且分出的正方形要盡可能大

提出的策略

1.找出基線條件要越簡單越好

2.不斷的將問題分解或者規模縮小.直到基線條件為止

不好的分割法

 

發想-一個邊的長度是另一個邊的倍數

1.設定基線條件

2.確定縮小問題的規模,使其符合基線條件

3.解法結果

圖片引用:Animations from Grokking Algorithms 算法圖解

分而治之(divide and conquer)演算法概念

將一個大問題拆解成若干個小問題之後,透過逐一解決這些小問題,來解決整個大問題。

1.由上而下

範例

2.由下而上

思考問題:你可以講出由分而治之由下而上的生活例子嗎?

提示:體育賽事


模組化(Module)程式設計重要方法-函數(Function)

教學影片

公式(formula)-指那些表示兩個量之間等或不等的公式

範例

三角形面積=底*高/2

函數(Function)-函數在數學中為兩不為空集的集合間的一種對應關係

範例

y=2x+1

為一對一(one-to-one)函數,輸入x值的不同,輸出y值也會跟著變動

函式(Function)

在程式設計中指的是將一段具有某種功能或重複使用的敘述寫成獨立的程式單元,然後給予名稱,供後續呼叫(調用)。有些程式語言將函式稱為方法(method).程序(procedure)或副程式(subroutine)

類別

1.內置函式-(Built-in Function)-程式語言本身提供的函式(程式語言預先定義的函式. 格式不可變動)

範例

七年級試算表函數

Scratch程式語言的絕對值積木

2.自訂函式-使用者自己依照需求定義的函式(程式編輯者隨時可以更動函式的定義)

範例

為什麼要學習自訂函式?

模組化程式設計小結

「把程式拆解成一個個副程式(Subroutine),就是模組化程式設計

Scratch函式積木

活動設計2-Scratch內建函式練習

 

活動設計3-Scratch自訂函式積木練習-畫正方形

教學影片

資料引用http://odata.tn.edu.tw/ebooktagapi/Home/readebooknew?id=b83ccee183d642b7852ec1cad60ae82c#3

實作步驟

函式(副程式)

主程式(呼叫調用函式)

完成程式參考

思考問題-如何畫以下圖形(利用函數積木)?

1.畫田字形

提示

REF

2.向右依序畫出六個平行的四邊形

提示

REF

3.畫三角.五角.六角形