第2回 基礎プログラミング I レポート課題 氏名:笹原千珠子 学籍番号:c109080A 語学クラス:英語 コース(系):政策マネジメント 1.A 1*4、4*4、16*4、64*4 というふうに計算していけば4日で200個が孵化する。 見やすくするために「%f」の所をすべて「%d」にして十進数で表示した。 2.A print_snail.rb #!/usr/koeki/bin/ruby day = 0 snail = snail0 = 1 snailmax = 200 while snail < snailmax printf("%d 日後 \t %d [個]\n" , day += 1, snail *= 4) end printf("%d 日後には 200 [個] を %d [個] 越えます。 \n" , day, snail - 200) 2.B 筆記問題やメタボリックのプログラミングを参考に数値を変えたりして、 while から計算が始まって end で終わるものを書いた。 while_snail.rb 2.B.a. 犬のロボットをなでると1日でなつき度が3%上がる。今なつき度は35である。な つき度が最高100とすると、何日でなつき度は100になるか。 2.B.b. #!/usr/koeki/bin/ruby day = 0 #なではじめた日 natuki = natuki0 = 35 #はじめた日のなつき度 natukimax = 100 #なつき度が最高の値 while natuki < natukimax #なつき度が最高になるまで計算し続ける printf("%d 日後 \t %d [なつき]\n" , day += 1, natuki *= 1.03) #筆記問 題と同じように、「%d」ですべて十進数でそろえた end #ここまで計算をくりかえす。 printf("%d 日後には 100 [なつき] を %d [なつき] 越えます。\n", day, natuki - 100) #計算が終わった時に表示させる文章 2.B.c. 変更点 なつき度を natuki として、初期値は35にした。増え方を3%にして、最大値を 100にした。 2.B.d. pan{c109080}% ./while_snail.rb [~/Ruby] 1 日後 36 [なつき] 2 日後 37 [なつき] 3 日後 38 [なつき] 4 日後 39 [なつき] 5 日後 40 [なつき] 6 日後 41 [なつき] 7 日後 43 [なつき] 8 日後 44 [なつき] 9 日後 45 [なつき] 10 日後 47 [なつき] 11 日後 48 [なつき] 12 日後 49 [なつき] 13 日後 51 [なつき] 14 日後 52 [なつき] 15 日後 54 [なつき] 16 日後 56 [なつき] 17 日後 57 [なつき] 18 日後 59 [なつき] 19 日後 61 [なつき] 20 日後 63 [なつき] 21 日後 65 [なつき] 22 日後 67 [なつき] 23 日後 69 [なつき] 24 日後 71 [なつき] 25 日後 73 [なつき] 26 日後 75 [なつき] 27 日後 77 [なつき] 28 日後 80 [なつき] 29 日後 82 [なつき] 30 日後 84 [なつき] 31 日後 87 [なつき] 32 日後 90 [なつき] 33 日後 92 [なつき] 34 日後 95 [なつき] 35 日後 98 [なつき] 36 日後 101 [なつき] 36 日後には 100 [なつき] を 1 [なつき] 越えます。 2.B.e 計算機で少し計算してみると pan{c109080}% bc -l [~] 35 * 1.03 36.05 36.05 * 1.03 37.1315 37.1315 * 1.03 38.245445 上のプログラムと同じような結果になるので、計算結果は合っているといえる。 しかし、十進数にしたことで小数点以下がわからず細かい所まで確認出来なかっ た。ある程度小数点以下も表示したほうが良かった。 3.感想 本当に一文字違うだけで動かなかったり、上手く表示されなかったりしてどこが おかしいのか確かめるのが大変だった。おかしい所があるとRubyが教えてくれる が、タイピングミスなどは見つけにくいし、慌てずにやることが大切だと思った。 4.参考文献 ウェブページ:「基礎プログラミング I 第2回 Ruby の基礎 / 計算が終わったら 止まる問題」 http://roy/~madoka/2010/r1/02/ 書籍:「Rubyプログラミング基礎講座」著者 広瀬雄二 第8講 計算機の内部表現 8-1 2進数と16進数 共同学習者:金田麻美 --------------------------------------------------------- 東北公益文科大学 2年 笹原千珠子 SASAHARA Chisuko メールアドレス c109080A@e.koeki-u.ac.jp