第2回 基礎プログラミング I レポート課題 氏名:及川雄寛 学籍番号:c1090302 語学クラス:英語3 コース:政策マネジメント 1.筆記問題 A.200-4 196 196-(4*4) 180 180-(4*4*4) 116 116-(4*4*4*4) -140 全て孵化するのに4日かかる。 2. A.#!/usr/koeki/bin/ruby day=0 egg=1 eggmax=200 while egg < eggmax printf("%d日後\t %d[個」\n", day +=1, egg *=4) end printf("%d日後には孵化した卵は %d「個」になります。だから、全て孵化するのに%d日かかります。 \n", day, egg, day) プログラムの解説 day = 日にちを表す引数 whileで孵化した卵の数が上限の200個を越えるまで計算を繰り返す egg = 卵が1日に孵化するのを表す引数 eggmax = 卵が最大200個孵化するのを表す引数 pan{c109030}% ./print_shail.rb [~/Ruby] 1日後 4[個」 2日後 16[個」 3日後 64[個」 4日後 256[個」 4日後には孵化した卵は 256「個」になります。だから、全て孵化するのに4日か かります。 計算の確認 pan{c109030}% bc -l [~/Ruby] 200-4 196 196-(4*4) 180 180-(4*4*4) 116 116-(4*4*4*4) -140 考察:このプログラムでは、while --endを用いた結果、自分が予想していた結果 違う風になった。eggを2にすれば、全部の卵が孵化するのは更に遅くなると思っ た。 B. ) a) 灯油が20l入る、ポリタンクがある。毎分2lずつ灯油を入れるとあふれるのは いつか? b) プログラム名:while_snail.rb #!/usr/koeki/bin/ruby minutes = 1 touyu =2 touyumax =20 while touyu < touyumax printf("%d分後\d %f[little]\n", minutes +=1, touyu *=2) end printf("%d分後には 20 [cm] を %d [cm] 越えます。 \n",minutes, touyu -20) #minutes: 時間を表す係数 #touyu: 1分間に入る灯油を表した係数 #touyumax: 灯油があふれる量を表す係数 c)プログラムの変更点 Aで行なったプログラムを参考に自分で問題を考え、灯油をtouyuとする。また、最大 値を20としてtouyumax=20とする。 d)結果: 2分後d 4.000000[little] 3分後d 8.000000[little] 4分後d 16.000000[little] 5分後d 32.000000[little] 5分後には 20 [cm] を 12 [cm] 越えます。 e)考察: 20リットルも入るポリタンクなど、なかなか無いと思うが、もし、これが2リッ トル入るポリタンクだったら、10個分位になるだろう。 3. 授業からプログラムを実行するのに、てこずったが、先輩に教えてもらううちに 理解できるようになってきたので、これが、自分で全部行なえるように、いろん なプログラムを考えて、実行できるようにしていきたい。 4. 課題の参考文献 Rubyプログラミング基礎講座 出版社:技術評論社 著者名:広瀬 雄二 ページ18〜21 レポートの参考文献 第2回 基礎プログラミング I レポートの書き方の参考 http://roy/~madoka/2010/rpt/multipart.html 第2回 基礎プログラミング I プログラム問題に必要な項目 http://roy/~madoka/2010/rpt/report.html 協力してくれた先輩:工藤 智也さん 3年 協同学習者:川島 哲