一、國小比賽例題練習
解題方式一:
http://www.hnps.tn.edu.tw/images/micrafimg/code/國小範例_東昌.mkcd
分析圖形
1.紅-白 重覆五次,建立一個函式
2.白-紅 重覆五次,建立一個函式,只要把上一個函式複製, 槽位互換就好了。
模式1是 0、3、6、9,其它是模式2。模式1每3排出現一次,所以用除以三的餘數來判斷是不是模式1。
解題方式二:
http://www.hnps.tn.edu.tw/images/micrafimg/code/國小範例_瑛蘭.mkcd
想法:觀察發現本例題橫向解法比較簡單,所以轉90度來規劃本題。
觀察每一列的規則,發現
偶數列: 白紅紅 白紅紅 白紅紅 白
奇數列:紅白白 紅白白 紅白白 紅
因次可以利用index變數來進行判斷是偶數行還是奇數行
變數 index 除2餘數0,表示偶數行 偶數行起始 (index的初始值為 0 - 9 )
變數 index 除2餘數1,表示奇數行
排列完一行之後必須轉彎偶數行向右轉,奇數行向左轉。
解題方式三:
http://www.hnps.tn.edu.tw/images/micrafimg/code/國小範例_盛南.mkcd
將圖形轉90度來看,採用直走上下放置的寫法。
二、國中比賽例題練習
解題方法一:
http://www.hnps.tn.edu.tw/images/micrafimg/code/國中範例_東昌.mkcd
縱向來看,這張圖有三種模式
1.紅-白 重覆5次,和國小範例相同,把國小範例的函式拿來用就好,這就是建立函式的好處。
我們在這裏略做修改,讓三種模式的比較更清楚
由上往下的格數從1~10
1.紅色:奇數。白色:偶數。
2.紅色:奇數。白色:4、8。藍色:其它。
3.紅色:奇數。藍色:4、8。白色:其它。
找到了規則,程式就簡單了。
模式1的函式
模式2的函式
模式3只要把模式2複製,1和3的槽位互換就好了。
模式1:0、3、6、9,
模式2:1、5 、7(模式1外的奇數)
模式3:2、4 、8(模式1外的偶數)
再次把國小範例拿來略為修改(下圖僅顯示修改的部份)
只要找到通則,就可以重覆利用,這就是運算思維!
解題方法二:
http://www.hnps.tn.edu.tw/images/micrafimg/code/國中範例_瑛蘭.mkcd
想法:觀察發現本例題橫向解法比較簡單,所以轉90度來規劃本題。
觀察每一列的規則,發現
0 和4和8:紅藍白 紅藍白 紅藍白 紅
1和5和9:白紅紅 白紅紅 白紅紅 白
2和6: 紅白藍 紅白藍 紅白藍 紅
3和7: 白紅紅 白紅紅 白紅紅 白
因次可以利用index變數來進行判斷
變數 index 除4餘數0,表示0 和4和8 (index的初始值為 0 - 9 )
變數 index 除4餘數1,表示1和5和9
變數 index 除4餘數2, 表示2和6
變數 index 除4餘數3, 表示 3和7
其中,餘1 和 餘3 又一樣。
所以程式寫法
如果變數 index 除4餘數 = 0 呼叫排紅藍白
如果變數 index 除4餘數 = 2 呼叫排紅白藍
否則就呼叫 排白紅紅
排列完一列之後必須轉彎偶數行向右轉,奇數行向左轉。
三、高中比賽例題練習
http://www.hnps.tn.edu.tw/images/micrafimg/code/高中範例_瑛蘭.mkcd