食譜: 製作牛奶糖食譜
Q:思考一下:是不是所有人拿到這個食譜都可做出來像大廚一樣煮出來的美味呢?
我們跟著食譜一步一步的做,最後希望做出看起來和照片差不多的東西;然而,最終的結果往往不如預期,為什麼呢?
其實問題往往出在食譜裡:
-「小火煮」到底火多小?
-「約30分」到底是幾分鐘?
-「鹽巴少許」,少許是多少?
-「醬油3匙」,哪一種匙呢?
-「大火油炸到焦黃」,到底火多大?何謂焦黃呢?
食譜的問題出在不明確的文字敘述
(二)同樣食材,怎樣才會做得好吃呢?
1.好的食譜譜正是優秀的演算法
2.演算法就是明確、有效、最終會結束的可執行步驟
(圖文引用自 https://read01.com/j7LADx.html、http://ms2.ctjh.ntpc.edu.tw/~luti/107-2week03.htm)
一、什麼是演算法?
(一)由有限步驟(step)所構成的集合,依照給定輸入(input) 依序執行每個
明確(definite) 且 有效(effective) 的步驟,以便能夠解決特定的問題;
而步驟的執行必定會終止(terminate),並產生輸出(output)
(二)演算法的表示:
(1)文字描述:
如上面的食譜描述
(2)流程圖:
(3)虛擬碼:
二、問題的分析及檢視:
(一)分析問題和需求:
1. 今天我的網站想要有會員登入的機制,來讓會員進行登入。
2. 如果 帳號密碼正確,則進入系統; 帳號密碼錯誤,則重新登入系統。
3. 如果 登入時,連錯多次,就發送驗證碼讓他再試著登入,以防Hacker破解。
(二)設計算法(流程圖):
1.會員登入->2.密碼是否正確-> 正確登入
-> 多次錯誤登入,則發送驗證碼。
(三)撰寫程式:
要寫手機程式還是電腦程式?
使用C++還是JAVA?使用PHP或是ASP?
我的伺服器是什麼軟體?他能懂得什麼語言?
(四)流程圖檢視:
1.陽春版流程圖: 2.進階版流程圖:
◎活動練習一: 阿志買麵包問題
1.阿志肚子餓了
2.他想去麵包店買一個麵包充飢,於是他走到麵包店
3.當他要付賬時,他發現:他口袋裡沒有錢!
4.他得先回去拿錢,再到麵包店買麵包。
◎活動練習一: 阿志買麵包問題
1.阿志肚子餓了
2.他想去麵包店買一個麵包充飢,於是他走到麵包店
3.當他要付賬時,他發現:他口袋裡沒有錢!
4.他得先回去拿錢,再到麵包店買麵包。
繪製流程圖於筆記本:
幫助阿志解決問題的想法?