前回変数を学んだのでそれを使って実用的なアプリを作っていこう!

BMIというのをご存知だろうか?身長と体重から肥満度を測定するものだ。

今回はそのBMI測定アプリを作っていく。

いつものように新しいプロジェクトを作って「旗がクリックされたとき」を配置して始めよう。

「BMIを計測するよ!」と出力して

「身長を教えて(cm)?」と出力して入力待ちにしよう。

ここまでやったらこの後の流れを考えてみよう。

質問に答えてユーザーが入力した身長は「答え変数」に記憶される。

BMIを計算するのには体重も必要なのでその後体重を質問することとなる。

そこでユーザーが入力した体重は「答え変数」に上書きされる・・・

前回やったように、変数は新しい値で常に上書きされるのであった。(身長が消えてしまう)

BMIを計算するには身長と体重が必要。ただし答え変数は一つの値しか記憶できない。

さて、どうすればよいであろうか?

[変数を作る]

Scratchでは自分でオリジナルな変数を作成することができる。そこに情報を格納していけば良さそうだ。さっそくやっていこう。

[データ]にある[変数を作る]をクリック

新しいWindowが開くのでそこの変数名というところに身長という意味で「height」と入力して[OK]ボタンを押そう。

[height]という新しい変数が作成され、下にはこの変数操作用のブロックが新規に作成された。

また、変数ブロックの横のチェックボックスはON,OFFで左上の変数表示部分の表示・非表示が切り替えられる。アプリによって使い分けるとよいだろう。

ではさっそくこの変数に値を入れてみよう。

まずは[データ]にある「[height]を0にする」ブロックを配置

その後[調べる]の中の[答え]ブロックを先ほど配置したブロックに図のようにドラッグ

OK!ここまでやったら実行してみよう。

入力した値がheight変数に格納されたことがわかる。

[代入]

このように変数に値を格納することをプログラミングでは代入という。この後もよく出てくるので少しずつ馴染んでいこう。

さて、身長を保持することができたので同様に体重もやっていこう。

新たにweightという変数を作成して、図のようにブロックを配置し実行してみよう。

BMIの計算に必要な二つの値を保持することができた!

このように必要な情報を保持しておくのに変数というのは非常によく使われる。

変数の作成や使用はScratchに限らずプログラミング全てにおいてとても重要な概念だ。しっかり慣れていこう。

[BMI]

必要なデータは揃った。いよいよBMIの計算をしていこう。

BMI指数=体重(kg)÷(身長(m)*身長(m))

BMIは体重割る身長の2乗で求められる。ただ、身長の単位がmであることに注意だ。

[計算]

まず、BMI格納用の変数を作ってしまおう。

この変数に計算結果を入れれば良さそうだ。

 

計算は[演算]にあるブロックを使ってやっていく。

体重(kg)÷(身長(m)*身長(m))

なのでまずcmでもらった身長をmに直そう。

cmからmに直すには100で割ればよい。

➗というのはScratchでは「/」を使う

[データ]にある[height]をドラッグし、後ろに100と書く

これでメートルに直した値が得られる。

身長*身長が欲しいのでオプションクリックで複製してしまおう。

続いて

Scratchでは掛け算は「*」を用いる。ドラッグした後、先ほど作った二つのブロックを丸に配置する

このようになればOKだ。

同様に

割り算を配置して

weight変数を配置して

先ほど作った複合ブロックをドラッグして図のようにする。

これでBMIの計算ができる。

ここで算数が好きだった人は疑問に思うことがあるだろう。

計算の優先順序はどうなっているかと。

足し算や引き算より掛け算、割り算が優先。かっこでくくると最優先というあれだ。

3+5*4は23だし。5*(2+3)は25になるという計算ルールだ。

結論から言うとScratchではそれぞれのパーツが()で括られてると考えてOK。

上の図は

(weight/((height/100)*(height/100)))

 

となる

このような対応だ。ブロックがちょっと立体っぽくなってるので高いところから計算していくという考え方でもいいだろう。

これで欲しかったBMIが計算できた。あとは出力するだけだ。

bmi変数に先ほどの計算結果を代入して出力してみよう。

実行してあなたのBMIが表示されれば成功だ。

続きがあるのだが少し長くなったので続きはまた明日。