日本語プログラミング言語「なでしこ」公式サイト |
日本語でプログラミングできる「なでしこ」を使って、プログラミングを身につけましょう。プログラミングができれば、いろいろな仕事を自動化することができます。今回は、なでしこを使って肥満判定に挑戦してみましょう。
肥満判定ができるBMIについて
今回は、簡単な計算式で肥満判定ができるBMIという計算式を利用したツールを作ってみましょう。そもそも、BMI(英語:Body Mass Index)というのは、体重と身長を使って、肥満判定を行うものです。
体重の単位をkg、身長の単位をcmとしたとき、BMIの値を計算する式は以下の通りです。
BMI = 体重 ÷ (身長 ÷ 100) ^ 2
そして、このBMIの値が、22に近ければ標準体重であり、18.5未満であれば、低体重(痩せ型)、25以上であれば肥満であると言われています。
ちなみに、なでしこで、(A ^ n)のように書くと、累乗の計算で、Aのn乗を表す計算となります。このBMIの計算で、(身長÷100) ^ 2と書いた場合、身長を100で割った値を2乗するという意味になります。
肥満判定プログラムを作ってみよう
それでは、この計算式に基づいて、なでしこのプログラムを作ってみましょう。なでしこの簡易エディタにアクセスして、以下のプログラムを入力してみましょう。
# --- 身長と体重の入力 --- (*1)
「身長(cm)は?」と尋ねて、身長に代入。
「体重(kg)は?」と尋ねて、体重に代入。
# --- BMIを計算 --- (*2)
BMI = 体重 ÷ (身長 ÷ 100) ^ 2
肥満度=INT(BMI ÷ 22 × 100)
# --- 肥満判定 --- (*3)
判定=「標準」
もし、BMI<18.5ならば、判定は「痩せ型」
もし、BMI≧25ならば、判定は「肥満」
# --- 結果を出力 --- (*4)
「身長: {身長}cm」を表示。
「体重: {体重}kg」を表示。
「BMI: {BMI} → {肥満度}%」を表示。
「判定: {判定}」を表示。
プログラムを実行すると、身長と体重の入力を求められます。それで、入力すると、BMIの値を計算して、肥満かどうかを判定して結果を表示します。
プログラムを見てみましょう。プログラムの(*1)の部分で、「尋ねる」命令を使って、ユーザーから値を入力します。入力した値は、それぞれ、変数「身長」と「体重」に代入します。
そして、(*2)の部分で、BMIを計算します。先に紹介したBMIの計算式をそのまま、プログラムの中でも使っています。BMIの計算式が簡単ということもありますが、日本語で書く計算式は、とても直感的で理解しやすいのではないでしょうか。
プログラムの(*3)の部分では、肥満判定を行います。BMIの値が18.5未満なら痩せ型、25以上なら肥満、それ以外なら標準です。そして、最後、(*4)の部分では、BMIの計算結果や肥満度判定を出力します。
「もし」構文の書き方
ところで、(*3)の部分では「もし」構文を使って、肥満かどうかを判定します。「もし」構文を使うと、条件に応じて、プログラムの流れを変更することができます。一般的な「もし」構文は、以下の書式で記述します。
[書式]
もし、(条件)ならば
# 条件が真の(正しかった)時の処理
違えば
# 条件が偽の(間違っていた)時の処理
ここまで。
例えば、ユーザーが入力した値が偶数か奇数かを判定するプログラムは、以下のようになります。
「数値を入力」と尋ねて、値に代入。
もし、値%2が0ならば
「{値}は偶数」と表示。
違えば
「{値}は奇数」と表示。
ここまで。
さらに、「もし」構文のうち、偽の時の処理が不要の時は、「違えば」から「ここまで」の直前までは省略できます。そして、真の時の処理が単文であれば、今回のBMIの肥満判定の処理のように一行で、『もし、BMI<18.5ならば、判定は「痩せ型」』のように記述できるようになっています。
判定の改良
ところで、BMIは統計データに基づいて肥満判定を行うものです。そして、統計データによれば、太り気味の人(BMIが25以上30未満)の人の方が、長寿であるとのデータがあります。標準よりも少し太っている人の方が長生きするというのは、興味深い結果です。仮にそうであれば、BMIが25以上の人を一括りに「肥満」と判定するのは、あまりよくありません。そこで、BMIが25以上30未満の人には「肥満ただし長寿かも」という判定結果が出るようにプログラムを改良してみましょう。
この場合、上記のプログラムの(*3)の部分を、以下のように書き換えることで、対応できるでしょう。
判定=「標準」
もし、BMI<18.5ならば、判定は「痩せ型」
もし、BMI≧25ならば、判定は「肥満」
もし、(25 <= BMI)かつ(BMI < 30)ならば、判定は「肥満ただし長寿かも」
例えば、身長160cm、体重65kgであれば、BMIは約25.39となるので、「肥満しかし長寿かも」という判定が出ます。
まとめ
以上、今回は、BMIを利用した肥満判定ツールを作ってみました。ここでは、「尋ねる」命令を利用して、身長と体重を尋ねて、判定結果を表示するツールを作ってみました。プログラミングを学びつつ、健康管理にも役立ててみてください。
自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2005年IPAスーパークリエイター認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。