第7回 基礎プログラミング II レポート課題 氏名: xxxxxxxx 学籍番号: c109xxx 語学クラス: 英語3 コース(系): 地域共創 1. A. a.仕様書 「http://roy/~c109014/advertise2/plan2.txt」 b.プログラム 「http://roy/~c109014/advertise2/need_energy.rb」 ◯考えた設定 適正体重、基礎代謝量を求めて、一日に必要なエネルギー量を計算し、ダ イエットに役立てられるプログラム。 ※基礎代謝基準値は男女の平均のものにする。 ※ ◯もとにしたプログラムからの変更点 第4回レポート課題「twoparam.rb」 ・def文の中に、if文を追加 ◯プログラム本体「need_energy.rb」 --------------------------------------------------------------------------- #!/usr/koeki/bin/ruby def taizyu(a) # 適正体重 = 身長 * 身長 * 22 (a/100) * (a/100) * 22 # cm を m に直すので、a を 100 で割る end def taisya(b,c) # 基礎代謝量 = 適正体重 * 基礎代謝基準値 if b >= 18 && b <= 29 # もし、年齢が 18歳以上かつ29歳以下なら c * 23.8 elsif b >= 30 && b <= 49 # もし、年齢が 30歳以上かつ49歳以下なら c * 22.0 elsif b >= 50 # もし、年齢が 50歳以上なら c * 21.1 end end def energy(d,e) # 必要エネルギー = 基礎代謝量 * 身体活動レベル値 if d >= 18 && d <= 69 # もし、年齢が 18歳以上かつ69歳以下なら 1.50 * e elsif d >= 70 # もし、年齢が 70歳以上なら 1.30 * e end end print("\t◎一日に必要なエネルギー量(kcal)計算◎\n\n") sleep 1 print("まず、あなたの「適正体重」を求めます。\n") sleep 1 STDERR.print("身長は?(cm) :") tall = gets.chomp.to_f # print("\n") # printf("身長 %f[cm]\n", tall) sleep 1 bestheavy = taizyu(tall) printf("\n適正体重 [%4.1fkg]\n", bestheavy) # %4.1f で小数第2位を四捨五入 sleep 1 print("この体重が、一番健康に過ごせる体重です。\n") print("\n\n\n") print("次に、「基礎代謝量」を求めます。\n\n") sleep 1 print(" 基礎代謝基準値\n") print("+--------+--------+\n") print("| 年齢 | 基準値 |\n") print("| 18〜29 | 23.8 |\n") print("| 30〜49 | 22.0 |\n") print("| 50〜 | 21.1 |\n") print("+--------+--------+\n") STDERR.print("年齢は? :") age = gets.chomp.to_i STDERR.print("適正体重は? :" ) omosa = gets.chomp.to_f sleep 1 kisotaisya = taisya(age,omosa) printf("\n基礎代謝量 [%4.0fkcal]\n", kisotaisya) sleep 1 print("これは、生命維持に必要な最小限のエネルギー消費量です。\n") sleep 1.5 print("\n\n\n") print("最後に、「エネルギー必要量」を求めます。\n") sleep 1 print(" 身体活動レベル\n") print("+--------+----------+\n") print("| 年齢 | レベル値 |\n") print("| 18〜69 | 1.50 |\n") print("| 70〜 | 1.30 |\n") print("+--------+----------+\n") STDERR.print("年齢は? :") tosi = gets.chomp.to_i STDERR.print("基礎代謝量は? :") kisotai = gets.chomp.to_i sleep 0.8 print("\t・\n") sleep 0.8 print("\t・\n") sleep 0.8 print("\t・\n") sleep 1 needenergy = energy(tosi,kisotai) print("\t◯あなたの一日に必要なエネルギー量◯\n\n") sleep 0.8 printf("\t\t[%4.0f Kcal]です!!\n", needenergy) --------------------------------------------------------------------------- ◯実行結果 --------------------------------------------------------------------------- pan{c109014}% ./need_energy.rb [~/public_html] ◎一日に必要なエネルギー量(kcal)計算◎ まず、あなたの「適正体重」を求めます。 身長は?(cm) :163 適正体重 [58.5kg] この体重が、一番健康に過ごせる体重です。 次に、「基礎代謝量」を求めます。 基礎代謝基準値 +--------+--------+ | 年齢 | 基準値 | | 18〜29 | 23.8 | | 30〜49 | 22.0 | | 50〜 | 21.1 | +--------+--------+ 年齢は? :19 適正体重は? :58.5 基礎代謝量 [1392kcal] これは、生命維持に必要な最小限のエネルギー消費量です。 最後に、「エネルギー必要量」を求めます。 身体活動レベル +--------+----------+ | 年齢 | レベル値 | | 18〜69 | 1.50 | | 70〜 | 1.30 | +--------+----------+ 年齢は? :19 基礎代謝量は? :1392 ・ ・ ・ ◯あなたの一日に必要なエネルギー量◯ [2088 Kcal]です!! --------------------------------------------------------------------------- pan{c109014}% ./need_energy.rb [~/public_html] ◎一日に必要なエネルギー量(kcal)計算◎ まず、あなたの「適正体重」を求めます。 身長は?(cm) :154 適正体重 [52.2kg] この体重が、一番健康に過ごせる体重です。 次に、「基礎代謝量」を求めます。 基礎代謝基準値 +--------+--------+ | 年齢 | 基準値 | | 18〜29 | 23.8 | | 30〜49 | 22.0 | | 50〜 | 21.1 | +--------+--------+ 年齢は? :31 適正体重は? :52.2 基礎代謝量 [1148kcal] これは、生命維持に必要な最小限のエネルギー消費量です。 最後に、「エネルギー必要量」を求めます。 身体活動レベル +--------+----------+ | 年齢 | レベル値 | | 18〜69 | 1.50 | | 70〜 | 1.30 | +--------+----------+ 年齢は? :31 基礎代謝量は? :1148 ・ ・ ・ ◯あなたの一日に必要なエネルギー量◯ [1722 Kcal]です!! --------------------------------------------------------------------------- ◯考察 Ktermで計算確認する。 一回目の実行結果 ・適正体重の計算 pan{c109014}% bc -l [~/public_html] (163/100) * (163/100) * 22 58.45180000000000000000 ・基礎代謝量の計算 pan{c109014}% bc -l [~/public_html] 58.5 * 23.8 1392.30 ・必要エネルギーの計算 pan{c109014}% bc -l [~/public_html] 1392 * 1.5 2088.0 二回目の実行結果 ・適正体重の計算 pan{c109014}% bc -l [~/public_html] (154/100) * (154/100) * 22 52.17520000000000000000 ・基礎代謝量の計算 pan{c109014}% bc -l [~/public_html] 22.0 * 52.2 1148.40 ・必要エネルギーの計算 1148 * 1.50 1722.00 それぞれ小数第2位を四捨五入して計算結果を再計算していくと、プログ ラムの実行結果と一致する。 このプログラムでは前に出した結果を、また入力しなければならないよう に作成した。次回の改良点は、前に出した結果を入力してgets.chompしな くてもいいように、def taisya(b,c) と def energy(d,e) の部分を変え ていきたい。 商品として考えれば、sleepの時間を上手く調整しないと実行している人 が不快に感じるかもしれないと思ったので、0.1秒単位で微調整した。だ が、まだ調整できるところはあると思う。 c.プレゼンテーション「prezen.odp」「prezen.pdf」 ◯原稿 ・1枚目 タイトルと自己紹介のみなので、省略。 ・2枚目 このプログラムを作成した目的は、まずダイエットしたい人やダイエッ ト中の人の手助けをしたいと思ったからです。このプログラムでは主に 食事に関しての内容を扱っており、一日に自分に必要なカロリーはどれ だけなのか、計算して知ることが出来ます。そうすることで、一日の食 事の量の目安を明確にします。 ・3枚目 実際にプログラムを実行するまでの手順です。 初めにプログラム本体を広告ページがらダウンロードし、保存して下さ い。次にKtermの画面を出し、「chmod +x ファイル名」を入力して保存 したプログラムを実行可能な状態にします。最後に「./ファイル名」を 入力すれば、一日に必要なエネルギー計算プログラムを開始できます。 あとは、次々に出てくる質問に従って自分の答えを入力していくだけで す。 ・4枚目 このプログラムを使用することで得られることは、適正体重、つまり自 分が一番健康に過ごせる体重を知ることが出来ます。とことん痩せたい 気持ちがあるとは思いますが、まずはこの体重を目安にしてダイエット して見ましょう。 次に基礎代謝量と言う、自分の生命維持に必要な最低限のエネルギー量 が分かります。ここで出た結果の量だけのエネルギーを最低限取らない と、あまり健康に良くないので注意しましょう。 そして、一日にどれくらいのカロリーを摂取すればいいか、知ることが 出来ます。つまり、この値を一日の食事でオーバーしなければ太ること はないということです。 ・5枚目 このプログラムの改善点は、面倒くさい質問をなくすことです。実行し てみると、最初の質問で適正体重を求めることができます。次の質問で は前に求めた適正体重の値をそのまま使うわけですが、いちいち手で入 力しないといけないので、覚えておくことが面倒です。この部分を、手 で入力せずとも、自動で取り込むようにプログラミングしたいです。 あとは、実行画面がちょっと見にくいと思うので、綺麗に文を整えたい と思います。 ・6枚目 最後に、ダイエットは食事を取っても可能だということがわかるはずで す。 ご静聴ありがとうございました。 d.広告ホームページ 「http://roy/~c109014/advertise2/」 B. d. 以前提出したレポートへのリンクの仕方が分からなかったので、仕様書と同 じようにテキストで表示するようにしました。 「report_4.txt」 2.感想 自分としては、今回の最高傑作は前期よりも頑張って作成しました。ただ、細 かいところで、まだ不完全なところがありました。プレゼン原稿でも書いたよ うに、その部分を今後改良したいと思います。 今回は元にしたプログラムはあるものの、いつもよりは自力でプログラムを作 成できたところが良かったです。他の忘れたところは友人とカバーし合えたの で、プログラミングが楽しかったです。 次回以降も休まず、講義に出席していきたいです。 3.参考文献 ◯カロリー・栄養素の必要な量(推奨量・目標量)の計算方法 「http://www.eiyoukeisan.com/calorie/article/info_suisyou.html」 共同学習者 ◯藤井駿 ◯遠藤孝之 ◯佐藤裕康 ◯布川大地