プログラミング実例を通じてプログラミング的思考を鍛えよう!- 体格判定アプリ編

はじめてのプログラミング体験

基本的な構文と変数条件分岐(if文)を学びました。今回は少しだけ実践的な例でプログラミングの流れを体験し、プログラミング的思考を身につけていきましょう。

ここでの目的は実際のプログラミングを一度経験することです。習得ではないので、プログラミングした気分になって読むだけでも大丈夫です。プログラミングがまったくのはじめてなら「はじめてのプログラミング体験レッスン一覧」から始めましょう。

体格判定プログラムの作成

依頼内容

日々ダイエットに励むAさんから「やせているか?太っているか?判定できるシステムを作ってください。」という依頼を受けました。これまで学んだ知識からシステムを作ってみましょう。

解決手段を見つける

太っているように見えるといった印象はシステム化できません。まずは体格を客観的に評価できる方法が必要ですが、そう言われても思いつきませんね。

わからないことをネットで調べて解決するのもプログラミング体験のひとつです。Googleで「体格 評価」というキーワードで検索してみましょう。

Google検索結果

BMI(Body Mass Index)という単語が目につきます。いくつかのページを見るとBMI(ボディマス指数)というものを使えば肥満度を客観的に評価できるようです。しかも体重と身長だけで算出できるためデータの入手も簡単です。

今回はこのBMIにより、やせているか?太っているか?の判定を行うことにします。

情報整理と設計

続いてBMIの情報を整理して目的達成のメドを立てましょう。

BMI = 体重(kg) ÷ 身長(m) ÷ 身長(m)

身長はm(メートル)よりcm(センチメートル)の方がよく使われるため、単位をcmにすると以下の式になります。

BMI = 体重(kg) ÷ 身長(cm) ÷ 身長(cm) × 10000

BMIの数値を下の表と照らし合わせることで、低体重、普通、肥満といった判定ができます。

体格 BMIの値
低体重(痩せ型) 18.5未満
普通体重 18.5以上、25未満
肥満(1度) 25以上、30未満
肥満(2度) 30以上、35未満
肥満(3度) 35以上、40未満
肥満(4度) 40以上

以上で下準備完了!

下の設計にもとづいてコーディングしていきましょう。

1. Aさんの体重と身長を聞く(or 測る)
2. BMI を算出する
3. 上の表と照合して判定する

コーディング

Aさんの体重は50kg、身長は160cmとわかりました。

解説はこのあとすぐしますが、まずはコード例を見てみましょう

コード例

var bmi = 50 / 160 / 160 * 10000;
document.write('BMI指数: ' + bmi);
document.write('<br>判定: ');
if (bmi < 18.5) {
    document.write('低体重');
} else if (bmi < 25) {
    document.write('普通体重');
} else if (bmi < 30) {
    document.write('肥満(1度)');
} else if (bmi < 35) {
    document.write('肥満(2度)');
} else if (bmi < 40) {
    document.write('肥満(3度)');
} else {
    document.write('肥満(4度)');
}

1行目では、Aさんの体重と身長をBMIの計算式に適用してBMIの数値を求めています。BMIの数値は何度も使うので、毎回計算せずに変数に入れておくのがポイントです(ここではbmiという変数に計算した数値を代入しています)。

BMIの数値と判定表との比較には「10分でわかる!if 文 -はじめてのプログラミング体験」で学んだ else if 文を使っています。

実行すると以下のようになります。

サンプルコード実行例

体重50kg、身長160cmのAさんは「普通体重」ということがわかりました。

おまけ – 実践的なアプリ

体格判定アプリに体重と身長を入力して体格を判定できるシステムを作ってみました。ユーザーからの入力を受け付けるには、HTMLとJavaScriptを本格的に学ぶ必要はありますが、興味のある方はぜひ触れてみてください。

この記事のソースファイルはこちらからダウンロードできます。実際のソースコードを体験してみましょう。

お疲れ様でした。これまでの知識を総動員して、少しだけ実践的なプログラミング体験、プログラミング的思考の訓練ができたでしょうか。次回はプログラミング体験の最後の山場「関数」について学んでいきましょう。

次の記事「10分でわかる!関数 -はじめてのプログラミング体験」を読む。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です