第2回 基礎プログラミング I レポート課題 氏名 吉田瑞恵 番号 C1082030 語学 英語(?) 系 社会 1.一日目 1個孵化 二日目 1+(1*4)=5 計5個孵化 三日目 5+(4*4)=21 計21個孵化 四日目 21+(16*4)=85 計85個孵化 五日目 85+(64*4)=85+256 計341個孵化 よって五日目に200個全て孵化する。 2. A. a.筆記問題 1.A の通り。 b.#!/usr/koeki/bin/ruby day = 1 #始めの一匹が孵化した日 snail = snail0 = 1 #カタツムリの数 snailmax = 200 #カタツムリの最大値 printf("1 日目 1 [個が孵化]\n") #問題より、一日目に一匹孵化したことが分かるので手動で入力 while snail < snailmax #カタツムリが200匹以上孵化するまでの計算を要求 printf("%d 日目 %3.0f [個が孵化]\n", day += 1, snail *= 4) #日を一日増すごとにカタツムリの数を4倍にするよう指示 end #計算はここまで printf("%d 日目には 200匹 全てが孵化します。 \n", day) #結果の表示 c.http://roy/~madoka/2010/r1/02/02_09_theme_07_while_meta.html のメタボリック症候群のプログラムを基に作成。 孵化したカタツムリの数を snail とした。 初期値はsnail0=1、最大値は200。 一日経過するたびに孵化した数を前日の4倍にする設定にした。 また、一日目は既に問題文で1個孵化という設定であったので、計算プログラミ ングにいれず二日目以降の計算のみ出来るようにした。 d.pan{c108203}% ./print_snail.rb [~/Ruby] 1 日目 1 [個が孵化] 2 日目 4 [個が孵化] 3 日目 16 [個が孵化] 4 日目 64 [個が孵化] 5 日目 256 [個が孵化] 5 日目には 200匹 全てが孵化します。 e. 200個のカタツムリの卵が全て孵化するには pan{c108203}% bc -l [~/Ruby] 1*4 4 4*4 16 16*4 64 64*4 256 よって五日間かかる。 f. 参考文献 「メタボリック症候群」 http://roy/~madoka/2010/r1/02/02_09_theme_07_while_meta.html 製作者:西村まどか先生 B. a. 1分ごとに2倍に分裂するアメーバが1個ある。 このアメーバが500個以上になるのは何分後か。 b. #!/usr/koeki/bin/ruby minute = 0 #アメーバ分裂開始時間 ameba = ameba0 = 1 #アメーバの数 amebamax = 500 #アメーバの最大値、500個 printf(" 最初 1[個]\n") #始めのアメーバの数を手動で入力 while ameba < amebamax #アメーバが500個を越えるまで計算を要求 printf("%d 分後 \t %3.0f[個]\n", minute += 1, ameba *= 2) #分を一分増すごとにアメーバの数を2倍にend #500以上になったら計算をストップ printf("%d 分後には 500 個 を 越える。 \n", minute) #結果表示 c.変更点 上記のファイル、print_snail.rbからの変更点 対象をsnailからamebaに変更。 初期値をameba0=1に、最大値は200から500に。 また、経過する日数でなく分が知りたいので、dayからminuteに変更した。 増える数は1日で前日の4倍孵化から、1分でもとの数の2倍になるように設定した。 d.実行 pan{c108203}% ./while_snail.rb [~/Ruby] 最初 1[個] 1 分後 2[個] 2 分後 4[個] 3 分後 8[個] 4 分後 16[個] 5 分後 32[個] 6 分後 64[個] 7 分後 128[個] 8 分後 256[個] 9 分後 512[個] 9 分後には 500 個 を 越える。 e.結果の考察 1個のアメーバが500個に分裂するには pan{c108203}% bc -l [~/Ruby] 1*2 2 2*2 4 4*2 8 8*2 16 16*2 32 32*2 64 64*2 128 128*2 256 256*2 512 したがってアメーバは9分後には500個以上に分列する。 f.参考文献 「メタボリック症候群」 http://roy/~madoka/2010/r1/02/02_09_theme_07_while_meta.html 製作者:西村まどか先生 3. 今回mewでのファイルの添付や、本文作成の中断のしかたを覚えた。 mewは今まで使っていたOutlookやフリーメールなどと異なる点が多くて操作方法 が分かりにくいと感じた。これから慣れることが出来るだろうか。 また、初めてのプログラミングで、本当に泣きそうになりながら作成した。 単語や不等号の向きが違ったり、","が一つ抜けたりして動かず苦労した。 その分、プログラムがちゃんと動いたときにはとても嬉しく思った。 今回作ったものには不備も多いかも知れないが、これからもっとよくRubyについて学び、 より正確なプログラムを作れるようになりたい。 4.参考文献 「メタボリック症候群」 http://roy/~madoka/2010/r1/02/02_09_theme_07_while_meta.html 今日はここまでで帰りたいとき http://roy/~madoka/2010/rpt/break.html 添付したファイルがある様子 http://roy/~madoka/2010/rpt/multipart.html 製作者:西村まどか先生 協力してくださった先輩:五代儀 公大 先輩