第2回 基礎プログラミング I レポート課題 氏名:遠藤達也 学籍番号:c1090271 語学クラス:中国語I コース(系):政策マネージメント 1、筆記問題 1日目。 1個孵化 2日目。1+(1*4個)孵化 計5個 3日目。5+(4*4個)孵化 計21個 4日目。21+(16*4個)孵化 計85個 5日目。85+(64*4個)孵化 計341個 つまり5日目で孵化は全て終了している。 pan{c109027}% bc -l [~] 1+(1*4) 5 5+(4*4) 21 21+(16*4) 85 85+(64*4) 341 2、プログラム問題 A。プログラム本体 #!/usr/koeki/bin/ruby print("@卵の孵化のプログラム@\n") print("1日目。 1個孵化\n") print("2日目。1+(1*4個)孵化 計5個 \n") print("3日目。5+(4*4個)孵化 計21個\n") print("4日目。21+(16*4個)孵化 計85個\n") print("5日目。85+(64*4個)孵化 計341個\n") print("つまり5日目で孵化は全て終了している。\n") 実行結果 pan{c109027}% ./print_snail.rb [~/Ruby] @卵の孵化のプログラム@ 1日目。 1個孵化 2日目。1+(1*4個)孵化 計5個 3日目。5+(4*4個)孵化 計21個 4日目。21+(16*4個)孵化 計85個 5日目。85+(64*4個)孵化 計341個 つまり5日目で孵化は全て終了している。 考察、KTERMの計算の結果により5日目で全て孵化し終わった。 B、設定、プログラムで計算し、その結果を表示させるプログラム プログラム本体 #!/usr/koeki/bin/ruby day = 1 #日にちの初期値 musi = musi0 = 1 #虫の初期値 musimax = 200 #虫の最大数 print("1日目\t 1匹死亡\n") #一日目は必ず1匹死亡 while musi < musimax #200匹死亡するまで繰り返し。 printf("%d 日目 \t %d匹死亡\n", day += 1, musi *= 4) #一日に死ぬ虫の量 end #while対するend printf("%d 日目には 200匹を越えます。\n", day) #最終結果 実行結果 pan{c109027}% ./while_snail.rb [~/Ruby] 1日目 1匹死亡 2 日目 4匹死亡 3 日目 16匹死亡 4 日目 64匹死亡 5 日目 256匹死亡 5 日目には 200匹を越えます。 考察。 虫は実行結果のように5日目に256匹死亡したかわからない。 そこでBC ーlで確かめ算を行った。 pan{c109027}% bc -l [~/Ruby] 1*1 1 1*4 4 4*4 16 16*4 64 64*4 256 quit 実行結果と確かめ算が一致したので、このプログラムは正常である。 3、感想 今回もとても難しい内容でした。講義中に一所懸命ついていこうとはしているの ですが、とても追いつくことが出来ません。そのため今回のレポートは友だちの 力を借りてなんとか終わらせることが出来ました。この先が心配でなりません。 4、参考文献 基礎プログラミング I 第2回 Ruby の基礎 / 計算が終ったら止まる問題 プログラムの作成と実行の手順 http://roy/~madoka/2010/r1/02/02_06_theme_04_chmod.html メタボリック症候群 http://roy/~madoka/2010/r1/02/02_09_theme_07_while_meta.html よい考察を行なうには http://roy/~madoka/2010/r1/02/02_18_theme_10_consideration.html 西村まどか著 協力者 永井絹人