以 fChart 馭 Python:
條件判斷(4/11)
Line:ted2016.kpvs
Email:Lct4246@gmail.com
FB:http://gg.gg/TedLeeFB/
Email:Lct4246@gmail.com
FB:http://gg.gg/TedLeeFB/
Blog:http://gg.gg/TedLeeBlog/
Feb. 8, 2022
[1]
1. 03-01.單選_絕對值:計算輸入數字的絕對值(absolute value)。絕對值的概念會在 108 新課綱的高中數學會學到。
2. 03-02.單選_需加件外套:當輸入的氣溫在 20 度以下時,fChart 媽媽會跳出來提醒要加件外套喔。
3. 03-03.單選_是否成年:判斷年齡是否已滿 18 歲。
接續著本 fChart 系列前文《以 fChart 馭 Python:練 fChart 了沒?(1/11)》(https://reurl.cc/oeDGN3),我們將針對圖1 的「10 大項目之 3」的 30 個實例(可從此處 下載),從
原始問題描述到以流程圖表達解法,再對照流程圖寫出 Python 語法程式
的過程詳細說明整個的問題解決(problem solving)過程。
原始問題
我們試圖把會安老師編排的範例一一還原到初始的問題形式來帶領讀者們思考:
問題 --- 流程圖 ---> 解法
一連串的問題解決奇幻之旅。筆者再次強調,
「解決問題」是編程訓練的終極目的,而「流程圖」乃為邏輯表達之母(積木拼圖拼湊不是)。
單選
2. 03-02.單選_需加件外套:當輸入的氣溫在 20 度以下時,fChart 媽媽會跳出來提醒要加件外套喔。
3. 03-03.單選_是否成年:判斷年齡是否已滿 18 歲。
4-9. …(請讀者自行練習)。
二選一
多選一
巢狀(nested)條件
流程圖與 Python 語法對轉
單選
1. 03-01.單選_絕對值:本範例需使用 條件判斷(condictional decision)邏輯敘述。圖 2 左側流程圖在說明絕對值的數學定義 ,這是一個二選一的判斷式,在流程圖中以菱形符號來表示。判斷條件(value < 0)寫在符號內,條件成立往 YES 分支走(value = - value,例如: -5 取絕對值為 -(-5) = 5);否則往 NO 走。請參考前著《以 fChart 馭 Python:運算子與運算式(3/11)》內「流程圖符號識讀」那一節的說明。
2. 03-02.單選_需加件外套:在 Code Editor 中一一將流程圖轉換到 Python 程式碼後以「03-02.單選_需加件外套.py」存檔,我們就能看到如圖 3 所對應的執行結果。
圖 3 :根據氣溫來判斷是否需要添加外套
3. 03-03.單選_是否成年:在 Code Editor 中一一將流程圖轉換到 Python 程式碼後以「03-03.單選_是否成年.py」存檔,我們就能看到如圖 4 所對應的執行結果。
圖 4 :18 歲成年的判斷
4-9. …(請讀者自行練習)。
二選一
二選一和單選不同之處在於判斷條件不管成立與否都有其對應要處理的邏輯。讀者可以比較圖 4 和圖 5 就可以細細分別。
這也就是 會安 老師說的:
這也就是 會安 老師說的:
用少少的流程圖符號,就能表達問題的演算方法,豈不妙哉!
讀者不妨將 fChart Interprter 工具列的 Delay 調到最大,讓工具進入單步執行(single-step execution)的除錯模式模式(debugging mode),然後細細追縱(trace)邏輯判斷真偽各自的分岔處理。註:
程式碼追蹤是學習「看」懂程式原始的編程邏輯之紮實蹲馬步功法。再上乘的功夫都是深築於厚實的基本功的!
10. 03-10.二選一_成績是否及格:在 Code Editor 中一一將流程圖轉換到 Python 程式碼後以「03-10.二選一_成績是否及格.py」存檔,我們就能看到如圖 5 所對應的執行結果。
多選一
if (第一段條件):
#
elif (第二段條件):
#
elif (…):
#
else: #其他
#
圖 6 :百分級距成績轉換為相對應的文字等第
沒有留言:
張貼留言