第2回 基礎プログラミング I レポート課題 氏名:青木 千紗 学籍番号:C1090012 語学クラス:中国語1 コース(系):地域共創 1、筆記問題 A.1日目…1匹 2日目…1*4=4 合計5匹 3日目…4*4=16 合計21匹 4日目…16*4=64 合計85匹 5日目…64*4=256 合計341匹 よって、5日目には卵が全て孵化する。 2、プログラム問題 A. ・設定 カタツムリの孵化の結果を表示するプログラムを作成した。 ・プログラム本体(print_snail.rb) #!/usr/koeki/bin/ruby print("1日目は1個孵化する。\n\n") print("2日目は5個孵化する。\n\n") print("3日目は21個孵化する。\n\n") print("4日目は85個孵化する。\n\n") print("5日目は341個孵化する。\n\n") print("5日目は200個すべて孵化し終わる。\n") ・実行結果 pan{c109001}% ./print_snail.rb [~/Ruby] 1日目は1個孵化する。 2日目は5個孵化する。 3日目は21個孵化する。 4日目は85個孵化する。 5日目は341個孵化する。 5日目は200個すべて孵化し終わる。 ・考察 ちゃんと表示することができたので、このプログラムは正確に機能したといえる。 B. ・設定 筆記問題についてプログラム内で計算するプログラムを作成した。 ・プログラム本体(while_snail.rb) #!/usr/koeki/bin/ruby day = 1 #日にちの初期値 egg = egg0 = 1 #卵の初期値 eggmax = 200 #卵の最大値 print("\n1日目は1個孵化する。\n\n") #1日目は必ず1個孵化する。 while egg < eggmax #卵が200以上孵化するまで、繰り返す。 printf("%d日目 \t %d[個]孵化する。\n\n", day += 1, egg *= 4) #day += 1 は1日進めるということ。egg *= 4 は卵を4倍していくこと。 end #whileに対するend printf("%d 日目には 200 [個] を 越えます。 \n", day) #最終結果 ・実行結果 pan{c109001}% ./while_snail.rb [~/Ruby] 1日目は1個孵化する。 2日目 4[個]孵化する。 3日目 16[個]孵化する。 4日目 64[個]孵化する。 5日目 256[個]孵化する。 5 日目には 200 [個] を 越えます。 ・考察 計算を行なったが、正しく計算されているか分からない。 そこで、bc -lで確かめ算を行なった。 pan{c109001}% bc -l [~/Ruby] 1*1 1 1*4 4 4*4 16 16*4 64 64*4 256 quit 実行結果と確かめ算により、きちんと表示され、計算も正しく行なわれているこ とが分かった。よって、このプログラムは正確に機能したといえる。 3、感想 今回の講義では、プログラムはなぜ動くのか学べた。プログラムの計算と 確かめ算の結果が合った時は、嬉しかった。また、プログラムでの計算の やり方も理解したので次につなげられると思うので来週も楽しみだ。 4、参考文献 web サイト 基礎プログラミング 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 著者:西村まどか ------------------------------------------------------------------------ 共同学習者:遠藤裕貴 協力してくれた先輩:工藤智也 さん