第 4 回 繰り返しは引っ張りだそう レポート課題 氏名: 佐藤 千香 学籍番号:C1101069 語学クラス:英語6 コース(系):地域共創コース 1、筆記問題 A、「登山とかけまして、試合と解きます。」 「その心は?」 「どちらも危険(棄権)がつきものです。」 「冷凍食品とかけまして、テストと解きます。」 「その心は?」 「どちらも解凍(解答)するでしょう。」 「ボールペンとかけまして、100m走と解きます。」 「その心は?」 「どちらも書ける(駆ける)でしょう。」 B、 山田くんはハンバーガーとドリンクを買っていくらになるか調べた。 ハンバーガーは1個320円でドリンクは1つ150円である。 ハンバーガーとドリンクとポテトのセットは500円である。 ハンバーガー ×2 ドリンク ×3 セット ×5 の合計は 320 × 2 + 150 × 3 + 500 × 5 = 3590 合計 3590 円 bc -l で確かめると、 pan{c110106}% bc -l [~/Ruby] 320*2+150*3+500*5 3590 よってこの答えは正しい。 花子さんは最近体重が気になってきたので自分のBMIを計算してみることにした。 花子さんの体重は45kg、身長は155cmである。 BMI は 体重(kg) ÷ {身長(m)×身長(m)} で求められる。 45 ÷ (1.55 × 1.55) = 18.7304… 花子さんのBMI 18.73 bc -l で確かめると pan{c110106}% bc -l [~/Ruby] 45/(1.55*1.55) 18.73048907388137356919 よってこの答えは正しい。 2、 プログラム問題 A、 a、考えた設定 身長、体重を入力してもらい、BMIを計算するプログラム b、プログラム #!/usr/koeki/bin/ruby def bmi(x,y) # 関数をbmiとする。引数は x、y x / (y /100)**2 # BMI = 体重(kg) ÷ {身長(m)×身長(m)} end # def に対する end print"\nあなたのBMIを計算します。\n" print"BMIとは身長からみた体重の割合を示す体格指数のことです。\n" print"BMIであなたの肥満度をチェックしよう!\n\n" print"----------判 定-----------\n" print"BMIが18.5未満 痩せすぎ\n" print"BMIが18.5〜25.0 普 通\n" print"BMIが25.0以上 肥 満\n" print"--------------------------\n\n" print"身長[cm]を入力して下さい:\n" cm = gets.to_f # 身長を入力。to_f で小数も扱えるようにする print"体重[kg]を入力して下さい:\n" kg = gets.to_f # 体重を入力。to_f で小数も扱えるようにする printf("\nBMIは、%2.2fです。\n\n", bmi(kg,cm)) # printf で結果を表示した。%sは文字列を%fは少数を扱うときに使用する。 #%fを指定するとデフォルトで少数点以下第6位まで出力される。 #そのため%fの間を2.2とする。2が全体の桁数、2が少数点以下の桁数をあらわす。 if bmi(kg,cm) <= 18.5 # if文。 bmi が18.5以下の場合 print"あなたは痩せすぎです!\n\n" # 行う操作 elsif 18.5 <= bmi(kg,cm) && bmi(kg,cm) <= 25.0 # bmi 18.5〜25.0であった場合 print"あなたは健康的な体重です!\n\n" # 行う操作 else #その他だった場合 print"あなたは肥満傾向にあります!注意!!\n\n" # 行う操作 end # if に対する end c、実行結果 pan{c110106}% ./def_twoparam.rb [~/Ruby] あなたのBMIを計算します。 BMIとは身長からみた体重の割合を示す体格指数のことです。 BMIであなたの肥満度をチェックしよう! ----------判 定----------- BMIが18.5未満 痩せすぎ BMIが18.5〜25.0 普 通 BMIが25.0以上 肥 満 -------------------------- 身長[cm]を入力して下さい: 160 体重[kg]を入力して下さい: 45 BMIは、17.58です。 あなたは痩せすぎです! pan{c110106}% ./def_twoparam.rb [~/Ruby] あなたのBMIを計算します。 BMIとは身長からみた体重の割合を示す体格指数のことです。 BMIであなたの肥満度をチェックしよう! ----------判 定----------- BMIが18.5未満 痩せすぎ BMIが18.5〜25.0 普 通 BMIが25.0以上 肥 満 -------------------------- 身長[cm]を入力して下さい: 160 体重[kg]を入力して下さい: 50 BMIは、19.53です。 あなたは健康的な体重です! pan{c110106}% ./def_twoparam.rb [~/Ruby] あなたのBMIを計算します。 BMIとは身長からみた体重の割合を示す体格指数のことです。 BMIであなたの肥満度をチェックしよう! ----------判 定----------- BMIが18.5未満 痩せすぎ BMIが18.5〜25.0 普 通 BMIが25.0以上 肥 満 -------------------------- 身長[cm]を入力して下さい: 160 体重[kg]を入力して下さい: 65 BMIは、25.39です。 あなたは肥満傾向にあります!注意!! d、もとにしたプログラムからの変更点 授業で取扱ったプログラムをもとに作成した。 ・関数、引数を変更 ・BMI の計算を入れた ・BMI の結果によって、肥満度の判定が表示されるようにした e、考察 bc -lで確かめると、 pan{c110106}% bc -l [~/Ruby] 45/(1.6*1.6) 17.57812500000000000000 50/(1.6*1.6) 19.53125000000000000000 65/(1.6*1.6) 25.39062500000000000000 計算は合っている。 またBMIに応じたコメントがでているのでこのプログラムは正しいと言える。 B、 a、考えた設定 標準体重を計算し、現在の体重との差を表示するプログラム b、プログラム #!/usr/koeki/bin/ruby def kg1(x) # 関数をkg1とし、引数はxとする。 22 * (x/100) **2 # 標準体重 = 22(標準のBMI) × {身長(m)×身長(m)} end # def に対する end print"あなたの身長[cm]を入力して下さい:\n" cm = gets.chomp.to_f # 身長を入力。to_f で小数も扱えるようにする print"あなたの体重[kg]を入力して下さい:\n" kg2 = gets.chomp.to_f # 体重を入力。to_f で小数も扱えるようにする printf("\nあなたの標準体重は、%2.1fkgです。\n\n", kg1(cm)) # 行う操作 if kg1(cm) < kg2 # 現在の体重が標準体重を上まわる場合 kg3 = kg2 - kg1(cm) # 差 = 現在の体重 - 標準体重 printf"標準体重には%2.1fkg痩せる必要があります\n",kg3 # 行う操作 elsif kg2 < kg1(cm) # 標準体重が現在の体重を上まわる場合 kg3 = kg1(cm) - kg2 # 差 = 標準体重 - 現在の体重 printf"標準体重には%2.1fkg太る必要があります\n",kg3 # 行う操作 else # その他の場合 end # if に対する end c、実行結果 pan{c110106}% ./def_oneparam_a.rb [~/Ruby] あなたの身長[cm]を入力して下さい: 160 あなたの体重[kg]を入力して下さい: 45 あなたの標準体重は、56.3kgです。 標準体重には11.3kg太る必要があります pan{c110106}% ./def_oneparam_a.rb [~/Ruby] あなたの身長[cm]を入力して下さい: 160 あなたの体重[kg]を入力して下さい: 50 あなたの標準体重は、56.3kgです。 標準体重には6.3kg太る必要があります pan{c110106}% ./def_oneparam_a.rb [~/Ruby] あなたの身長[cm]を入力して下さい: 160 あなたの体重[kg]を入力して下さい: 65 あなたの標準体重は、56.3kgです。 標準体重には8.7kg痩せる必要があります d、もとにしたプログラムからの変更点 Aのプログラムをもとに作成した。 ・関数、引数の変更 ・標準体重を求める計算を入れた ・標準体重と現在の体重の差を表示するようにした e、考察 bc-l で確かめると pan{c110106}% bc -l [~/Ruby] 22*(1.6*1.6) 56.32 56.32-45 11.32 56.32-50 6.32 65-56.32 8.68 となるのでこのプログラムは正しいといえる。 3、感想 今回学んだプログラミングはこれまで学んできた算数、数学のしくみと同じであ ると思う。そのため幅広いことに今回のプログラムを活用することができると思っ た。前回先生がおっしゃったように今回は日常で使うような実用的なプログラム を作成した。プログラミングは自分の理解、説明力の向上とともに今後の就職活 動にいかせるものだということをあらためて実感した。 4、参考文献:ウェブページ 西村まどか 基礎プログラミングII 第4回 これを代入した答はなあに http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/04/r2_04_04_theme_04_stderr.html 基礎プログラミングII 第4回 分かりやすいプログラムへ http://roy.e.koeki-u.ac.jp/~madoka/2011/r2/04/r2_04_05_theme_05_print.html ウィキペディア フリー百貨辞典 ボディマス指数 ttp://ja.wikipedia.org/wiki/ボディマス指数 5、添付 Bのプログラムのみ添付します。