基礎プログラミング I 第 2 回 (Ruby の基礎 / 計算が終ったら止まる問題) 「メタボリック症候群」 講義ノート目次

少々腹周りが気になるようになった男性サラリーマン。 去年のサイズは 75 cm であったが、今年は 78 cm となっていた。 したがって 1 年間のウェストの増加率は年 4 % となった。

78 / 75 = 1.04 = 104(%)

この生活習慣を続けた場合、 メタボリックシンドロームと判断されるのは、何年後になるか。 男性がメタボリックシンドロームと判断されるのは、 腹周りが 85 cm 以上とされている。 while_meta.rb

#!/usr/koeki/bin/ruby

# coding: euc-jp

year = 0
waist = waist0 = 78
waistmax = 85

while waist < waistmax
printf("%d 年後 \t %f [cm]\n", year += 1, waist *= 1.04)
end printf("%d 年後には 85 [cm] を %f [cm] 越えます。\n", year, waist - 85)

変数の解説は以下のとおり。

waist
ウェスト (waist) サイズ[cm] を表す変数
waist0
開始年のウェストサイズ [cm]
waistmax
メタボリックと判断されるウェストサイズ [cm]
year
年 (year) を表す変数

実行文の解説は以下のとおり。

waist *= 1.04
変数 waist に入っている値を 4 % 増加させる
year += 1
変数 year に入っている値を 1 増加させる
printf
変数を変換指定子を使って表示する実行文
%d
整数値を表示する変換指定子
\t
printf 文ですき間を表示させる

実際に手計算して確かめてみよう。