【連載】

ゼロからはじめてみる日本語プログラミング「なでしこ」

11 日本語で肥満判定ツールを作ってみよう

11/12

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

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

肥満判定ができる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貢献者章受賞。技術書も多く執筆している。

11/12

インデックス

連載目次
第12回 文字数カウントツールを作ってみよう
第11回 日本語で肥満判定ツールを作ってみよう
第10回 日本語プログラミングでビンゴマシンを作ってみよう
第9回 6行でオリンピックまであと何日?
第8回 日本語プログラミングで年齢早見表
第7回 なでしことExcelで9月始まりのカレンダーを作ろう
第6回 数当てゲームを作ってみよう
第5回 単位変換ツールを作ってみよう
第4回 タートルグラフィックスでお絵かきしよう(その2)
第3回 タートルグラフィックスでお絵かきしよう(その1)
第2回 プログラミングにおける変数の役割について
第1回 日本語プログラミング言語「なでしこ」を始めよう

もっと見る



人気記事

一覧

イチオシ記事

新着記事