2019年3月19日 星期二

scratch 3.0 (10)計算BMI

計算BMI
討論: 如何判斷體位? (分組討論、發表或教師提問)
     上網搜尋BMI? 分組討論後發表


參考資源: (衛生福利部國民健康署 健康九九網站
http://health99.hpa.gov.tw/OnlinkHealth/Onlink_BMI.aspx)

參考檔案: https://scratch.mit.edu/projects/295379534/
演算法: 
以流程圖表示



以基本虛擬碼表示
{
 輸入身高
 輸入體重
 計算BMI
 輸出BMI
}
以進階虛擬碼表示
{
 輸入身高且存入變數height
 輸入體重且存入變數weight
 變數BMI內容被設定(存入)體重/(身高*身高)之運算結果
 輸出BMI
}

主要積木程式解說:
Step 1: 基本互動(輸入及回饋)
運用輸入積木出現提示訊息,要求輸入二數值,即身高、體重;輸入數值存放/記錄在何處? 變數是甚麼?



 BMI之公式為何?  認識程式中四則運算符號,撰寫算術運算式;如何將算術運算式結果存放變數。



哪一積木可以”輸出”訊息?
什麼叫互動?有來有往,有輸入也要有輸出。


討論: 執行過程有何缺點?(小數點過長)
Step 2: 讓輸出訊息更完整,保留小數點一位數
BMI計算結果小數位數太長,如何縮為小數一位
因 Scratch只有將小數第一位進行四捨五入,到個位數


四捨五入且保留小數一位

如何運用字串變數存放二輸入數值(即身高、體重)及BMI計算結果?
利用”字串組合”積木,但一次只能組合二項資料

Result變數:先用字串組合放入msg1及msg2變數,再將此二變數組合到result


問題討論: (1)循序(sequence)積木是否可對調?那些可以? 那些不行?
         (2)上述上述程式只能執行一次:加入無窮迴圈以提供重複輸入及  計算




進階: 依據BMI計算結果,判斷體位是否標準(輸出診斷訊息)

演算法:
 以流程圖表示

以進階虛擬碼表示
{
 輸入身高且存入變數height
 輸入體重且存入變數weight
 變數BMI內容被設定(存入)為weight/(height*height)
 輸出BMI
 如果18.5 <= BMI < 24 →  輸出”健康體位”
 否則
      輸出”不標準體位”
}
討論:
分支判斷體位是否標準,條件邏輯: 18.5<=BMI<24 nbsp="" span="">→ 但Scratch不提供≧、≦,如何表示18.5<=BMI ?
討論: 18.5<=BMI 要改成BMI>18.5或BMI=18.5      哪一個正確?(注意 或,且)

討論:  18.5<=BMI<24 nbsp="" span="" style="font-size: 13.2px;">→ 
實作:請學生實作,再總結”或”、”且”條件邏輯
討論:只判斷體位標準或不標準太過簡單,希望記錄更完整




創作:依據BMI計算結果,判斷三類體位

沒有留言:

張貼留言