日本語プログラミング言語「なでしこ」公式サイト

日本語でプログラミングできる「なでしこ」を使って、プログラミングを身につけましょう。プログラミングができれば、いろいろな仕事を自動化することができます。今回は、なでしこを使って肥満判定に挑戦してみましょう。

肥満判定ができる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の値を計算して、肥満かどうかを判定して結果を表示します。

身長と体重を入力します。すると・・・

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が25以上30未満であれば、長寿判定が出ます!

まとめ

以上、今回は、BMIを利用した肥満判定ツールを作ってみました。ここでは、「尋ねる」命令を利用して、身長と体重を尋ねて、判定結果を表示するツールを作ってみました。プログラミングを学びつつ、健康管理にも役立ててみてください。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2005年IPAスーパークリエイター認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。