2014年3月13日 星期四

App Inventor 2 的範例程式 - BMI2.0(IF THEN )

BMI2.0是一個可以測試身體BMI並提醒你在於哪個標準。

程式內容:
玩家輸入自己的身高和體重,程式會顯示出你的BMI且會告知你處在哪個標準之中


分級標準
身體質量指數
體重過輕Underweight
BMI<18.5
正常範圍The normal range
18.5<=BMI<24
過重Overweight
24<=BMI<27
輕度肥胖Mildly obese
27<=BMI<30
中度肥胖Moderately obese
30<=BMI<35
重度肥胖Severe obesity
BMI>=35

本範例假設您已經完成了BMI1.0的範例程式。




程式功能分析:

設計一個程式,輸入完身高和體重後,會自行計算出BMI,接著判斷出位在哪個區間中,藉此告知分級標準。

開發步驟:

步驟一:請先新增一個名稱為「BMI2」的專案,按下 OK 後,即可進入 App Inventor  Designer 視窗。(註:專案名稱中可用底線但不能有空格或其它特殊字元)


步驟二:以BMI1.0的範例程式的版面為基礎



步驟三:到視窗左側的元件面板(Palette)中,點選使用者介面(User Interface)中的標籤(Label)元件,按住滑鼠不放將其拖曳至預覽(Viewer)中,接著找到 Text 屬性,將方框中預設的文字清除。



接下來我們就可以開始編寫程式囉!請點擊右上方的Blocks切換到程式頁面。


步驟四:請在左側Blocks選單中點選Built-in下的Variables,在彈出的拼圖式程式區塊中選取 initialize global name to,置於預覽視窗中,並將"name "改為"bmi"


解釋:需設一個數字變數為 bmi

步驟五:點選Math,選取0,卡入其中


解釋:宣告bmi為數字變數,初始值為0

步驟六:依照BMI1.0的範例程式做到以下步驟


解釋:此為BMI的算式(體重/身高的平方)

步驟七:請在左側Blocks選單中點選Built-in下的Variables,在彈出的拼圖式程式區塊中選取 set global bmi to,置於預覽視窗中


步驟八:將set global bmi to取代步驟四中set Label1.Text to


解釋:因為接下來的判斷式需要判斷變數

步驟九:將剛剛的set Label1.Text to移到set global bmi to下方並且在Variables找到get global bmi卡入其中



解釋:第一個標籤要顯示出BMI的數值

步驟十:請在左側Blocks選單中點選Built-in下的Control,在彈出的拼圖式程式區塊中選取if then,拉至set Label1.Text to之下


解釋:需判斷BMI的區間,才能顯示出標準


步驟十一:請在左側Blocks選單中點選Built-in下的Math中的 = 改成 < 再拉至 if 後


步驟十二:請在左側Blocks選單中點選Built-in下的Variables找到get global bmi放置在 < 左邊框內後,再將Math中的0拉至右邊框內,並將0改為18.5(紅線處)


步驟十三:請在左側Blocks選單中點選 Screen1下的 Label2 找到 set Label2 Text to放置在 then 之後



解釋:第二個標籤顯示出標準,倘若BMI小於18.5,就會顯示出體重過輕

步驟十四:請在左側Blocks選單中點選 Built-in下的 Text中的 "   " 放置在 set Label2 Text to之後,並將名稱改為Underweight



步驟十五:請在左側Blocks選單中點選Built-in下的Control,在彈出的拼圖式程式區塊中選取if then,拉至第一個 if then 之下
















步驟十六:請在左側Blocks選單中點選Built-in下的Logic,在彈出的拼圖式程式區塊中選取and,拉至第二個 if then 之後



解釋:需要判斷兩個式子

步驟十七:請在左側Blocks選單中點選Built-in下的Math中的 = 改為 >= 拉至 and 的左邊框內後,再重新拉另一個 = 改為 < 到and 的右邊框內(紅線處)


步驟十八:請在左側Blocks選單中點選Built-in下的Variables找到get global bmi放置在  >= 的左邊框內後,再將Math中的0拉至右邊框內,並將0改為18.5(紅線處)


步驟十九:請在左側Blocks選單中點選Built-in下的Variables找到get global bmi放置在 < 的左邊框內後,再將Math中的0拉至右邊框內,並將0改為24(紅線處)


步驟二十:請依照步驟十三和步驟十四的動作執行,在左側Blocks選單中點選 Screen1下的 Label2 找到 set Label2 Text to放置在 then 之後,再來在左側Blocks選單中點選 Built-in下的 Text中的 "   " 放置在 set Label2 Text to之後,並將名稱改為 The normal range


步驟二一:請繼續依照步驟十九和步驟二十的動作執行,更改數值及分級標準,直到完成(紅線處)



完成完整的程式如下:


恭喜完成了此次的範例程式。

5 則留言:

  1. 請問一下我想讓他也顯示bmi值 我用了join 第一個bmi變數 第二個則是顯示過重或過輕
    但是實測不管輸入什麼數字 都只會顯示過輕 這是為什麼呢?

    回覆刪除
  2. 請問您有拼圖類的範例嗎???

    回覆刪除
  3. 可以幫我看一下我的程式有什麼問題嗎!
    我的程式運算有問題耶!
    但我看了一下你的,明明一樣啊,但我的有問題!

    回覆刪除
  4. SET/BMI/TEXTBOX2/TEXTBOX1/100^2
    才對

    回覆刪除