画像提供:マイナビニュース

写真拡大

昨今、健康維持のために散歩をしている人が増えているようです。通勤時に早めに家を出て一駅分歩くようにしているとか、エレベーターを使わないようにするなど、日々の生活の中で努力している人も多いことでしょう。今では、歩数計やスマートフォンで歩数を確認できます。今回は、日本語プログラミングで消費カロリーの計算をしてみましょう。

○お知らせ - なでしこ1が大幅バージョンアップ

本連載では、Webブラウザで気軽に実行できる「なでしこ3」について解説していますが、Windows版に特化した「なでしこ1」も、継続してメンテナンスされています。この度、なでしこ1が大幅にバージョンアップしましたので簡単に紹介します。これまで、なでしこ1には、オープンソース版と有料のデラックス版があったのですが、今回統合され無償化されました。また、実行ファイルとして配布する機能もアップデートされて、より安全に配布できるように修正されました。Windows版のダウンロードは、Webサイトより可能です。

○散歩の消費カロリー計算について

まずは、消費カロリーの基本的な計算式を確認してみましょう。散歩の消費カロリーは、以下の計算式により算出することができます。

消費カロリー(kcal) = 3メッツ × 体重kg × 運動時間 × 1.05

3メッツというのは、一般的な散歩の運動強度を表す値です。なお、メッツ(METS)というのは、安静時の消費エネルギーを1としたときの、各運動のエネルギー消費量を表すものです。散歩ではなくランニング(分速107.3m)をするのであれば、6メッツとなります。

○一番簡単なプログラムを作ってみよう

それでは、なでしこの簡易エディタをWebブラウザで開いて、以下のプログラムを入力してみましょう。以下は、体重65kgの人が1時間散歩した場合の消費カロリーを計算します。

運動量 = 3

体重kg = 65

運動時間 = 1

消費カロリー = 運動量 × 体重kg × 運動時間 × 1.05

「消費カロリーは、{消費カロリー}kcalです。」と表示。

エディタ下部にある「実行」ボタンを押すと、以下のように結果が表示されます。ごはん一杯分のカロリーが252kcalですから、1時間の散歩では、ごはん一杯分も消費していないことが分かります。

なお、プログラムを作ることの良い点が、手軽に値を変更できることです。プログラム内の体重kgや運動時間の値を変更してみて、実行結果が変化することを確認してみましょう。

○UIを作ってみよう

上記のプログラムでは、毎回プログラムを書き換える必要があります。上記のような簡単なプログラムでは、問題ありませんが、少し複雑なプログラムでは、何を書き換えて良いのか分からなくなる場合もあります。そこで、UI(操作する画面要素)を工夫して手軽に計算できるプログラムにしてみましょう。

# --- UIの作成 --- (*1)

「体重kg」のラベル作成。改行作成。

体重エディタ=「65」のエディタ作成。

改行作成。

「運動時間(分)」のラベル作成。改行作成。

時間エディタ=「30」のエディタ作成。

改行作成。

計算ボタン=「計算」のボタン作成。

改行作成

結果ラベル=「???」のラベル作成。

#--- イベント --- (*2)

計算ボタンをクリックした時には

  体重kg = 体重エディタのテキスト取得。

  時間分 = 時間エディタのテキスト取得。

  消費カロリー = 3 × 体重kg × (時間分÷60) × 1.05

  結果ラベルに「{消費カロリー}kcal」をテキスト設定。

ここまで。

なでしこ簡易エディタにて、上記プログラムを記述し、「実行」ボタンをクリックすると、入力項目が表示されます。体重と運動時間(分)を入力して「計算」ボタンをクリックすると消費カロリーが表示されます。

プログラムの(*1)の部分では、エディタやラベルを作成して、UIを構築しています。ここでは、「エディタ作成」「ラベル作成」「ボタン作成」などの命令を使って画面を作成します。そして、(*2)の部分で、ボタンをクリックした時の挙動(イベント)を作成します。

このとき、エディタに書き込まれたテキストを取得するには、「テキスト取得」命令を使います。逆にラベルやエディタにテキストを設定するには「テキスト設定」命令を使います。このように、ボタンとエディタを使いこなすことで、いろいろな計算プログラムを作ることができます。

○改良のヒント - ショートケーキから逆算するプログラム

次にダイエットを考慮して、カロリーを消費するために必要な運動時間を計算するプログラムを作ってみましょう。ショートケーキをいくつ食べたら、どのくらいの運動が必要かを調べるプログラムです。ショートカットキーの1ピースは、366kcalで、ランニングの運動量は6メッツだそうです。これを元に、何分のランニングが必要かを調べてみましょう。

# --- 個数と体重を指定 ---

ケーキ個数 = 1

体重kg = 60

# --- 計算 ---

カロリー = 366 × ケーキ個数

運動量 = 6 # ランニング

時間分 = CEIL(カロリー ÷ 運動量 ÷ 体重kg × 60 × 1.05)

「{時間分}分の運動が必要です」と表示。

上記のプログラムを実行して、結果を確かめてみましょう。上記のプログラムをなでしこ簡易エディタに貼り付けて実行してみましょう。以下のように表示されます。

ケーキの1ピースを食べたら、ランニング65分が必要ということが分かりました。これは、先ほど利用した以下の公式を変形させて求めたものです。

カロリー = 運動量 × 体重kg × (時間分 ÷ 60) × 1.05

       ↓

時間分 = カロリー ÷ 運動量 ÷ 体重kg × 60 × 1.05

プログラムの先頭二行を書き換えることで、ケーキの個数や体重を変更できるので、いろいろ数値を変えて確かめてみてください。

○まとめ

今回は、消費カロリー計算を行うプログラムとその改良のヒントを紹介しました。UIの作成方法も紹介しましたので、プログラムを変えることなく、ケーキ個数から運動時間を計算するプログラムも作ってみると良いでしょう。プログラミング上達のコツは、自分でいろいろと数値を変えたり、別のプログラムを元にオリジナルのプログラムを作ってみることです。今回の消費カロリー計算は、とても良い題材なので、挑戦してみてください。

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