第5回 基礎プログラミング II レポート課題 氏名:佐藤 裕康 学籍番号:c1090911 語学クラス:英語1 コース(系):政策マネジメント 1.A. ASCII文字コードは前回のを参照するとこうなります。 S:53 A:41 T:54 O:4F U:55 H:48 I:49 R:52 O:4F Y:59 A:41 S:53 U:55 これをそれぞれ10進数に直す。 S = 5*16+3 =83 A = 4*16+1 =65 T = 5*16+4 =84 O = 4*16+15 =79 U = 5*16+5 =85 H = 4*16+8 =72 I = 4*16+9 =73 R = 5*16+2 =82 O = 4*16+15 =79 Y = 5*16+9 =89 A = 4*16+1 =65 S = 5*16+3 =83 U = 5*16+5 =85 となります。 83 + 65 + 84 + 79 + 85 + 72 + 73 + 82 + 79 + 89 + 65 + 83 +85 =1024 bc-lで計算すると pan{c109091}% bc -l [~] 83 + 65 + 84 + 79 + 85 + 72 + 73 + 82 + 79 + 89 + 65 + 83 +85 1024 となるので、合っている。 10進数の答えはは0d1024となる。 16進数に直すにはこれを16で割って行けば良い。 1024 / 16 = 64余り0 64 / 16 = 4余り0 4 / 16 =0余り4 となる。 bc-lで確かめた。 pan{c109091}% bc -l [~] 1024 /16 64.00000000000000000000 64 / 16 4.00000000000000000000 そうなると、余りをしたから見て行けば良いので、 0x400となる。 B. パンを食べると仮定してプログラム風に書きました。 def gohan(pan,bat,sara) pan を焼く #パンを焼く bat をつける #バターをのせる saraにのせる #皿にのせる end gohan(1枚,2個,1枚) print("いただきます\n") 2.A a.設定 組み合わせを求めるプログラムを作りました。 b.作成したプログラム #!/usr/koeki/bin/ruby def factorial (m) if m == 1 return 1 else m * factorial(m - 1) end end STDERR.print("全部でいくつありますか?: ") total = gets.to_i STDERR.print("そのうちいくつ取りますか?: ") del = gets.to_i ans = total - del printf("%dから%d取る組み合わせです。\n", total,del) printf("%d通り、あります \n",factorial(total)/(factorial(del)*factorial(ans))) c.もとにしたプログラムからの変更点 シンプルに数だけを求めるプログラムにした。 必要最低限のプログラムで作った。 d.実行した結果画面 5から2を取る場合 pan{c109091}% ./def_combination.rb [~/Ruby] 全部でいくつありますか?: 5 そのうちいくつ取りますか?: 2 5から2取る組み合わせです。 10通り、あります pan{c109091}% [~/Ruby] 6から3を取る場合 pan{c109091}% ./def_combination.rb [~/Ruby] 全部でいくつありますか?: 6 そのうちいくつ取りますか?: 3 6から3取る組み合わせです。 20通り、あります e.考察 答えが合っているか調べた。 bc -lで計算した。 5から2を取る場合。 pan{c109091}% bc -l [~/Ruby] (5*4)/(2*1) 10.00000000000000000000 6から3を取る場合 pan{c109091}% bc -l [~/Ruby] (6*5*4)/(3*2*1) 20.00000000000000000000 となったので、このプログラムは正しいといえる。 3.感想 機械的な操作を繰り返すものは ひもをひっぱったりネジを巻くと動くおもちゃ があると思いました。 今回の問題ではASCIIコードの計算に時間がかかってしまった。 手間取ってしまったが、先輩のレポートを参考にして自分なりに計算することが できたと思うのでよかったと思います。 今回はB問題とC問題が難しくて解けなかったけど、次回こそは頑張って良い評価 をもらえるようなレポートを作成できるよう、頑張りたいと思いました。 4.参考文献 共同学習者 池田 博哉