第5回 基礎プログラミング II レポート課題 氏名:渡辺力 学籍番号:c1091520 語学クラス:英語3 コース(系):地域 1、筆記問題 A、 私の名前のアルファベットは Watanabe Chikara ASCIIコード表と照らし合わせていく。 それぞれの文字に対応する数値は W = 0x57 a = 0x61 t = Ox74 a = 0x61 n = Ox6E a = 0x61 b = 0x62 e = Ox65 C = 0x43 h = Ox68 i = 0x69 k = Ox6B a = 0x61 r = Ox72 a = 0x61 10進数の場合 W =5*16の1乗+7*16の0乗=87 a =6*16の1乗+1*16の0乗=97 t =7*16の1乗+4*16の0乗=116 a =6*16の1乗+1*16の0乗=97 n =6*16の1乗+14*16の0乗=110 a =6*16の1乗+1*16の0乗=97 b =6*16の1乗+2*16の0乗=98 e =6*16の1乗+5*16の0乗=101 C =4*16の1乗+3*16の0乗=67 h =6*16の1乗+8*16の0乗=104 i =6*16の1乗+8*16の0乗=105 k =6*16の1乗+11*16の0乗=107 a =6*16の1乗+1*16の0乗=97 r =7*16の1乗+2*16の0乗=114 a =6*16の1乗+1*16の0乗=97 87+97+116+97+110+97+98+101+67+104+105+107+97+114+97=1494 確かめ算 pan{c109152}% bc -l [~] 87+97+116+97+110+97+98+101+67+104+105+107+97+114+97 1494 16進数の場合 苗字 5*16+7 + 6*16+1 + 7*16+4 + 6*16+1 + 6*16+14 + 6*16+1 + 6*16+2 + 6*16+5 =87+97+116+97+110+97+98+101 =803 名前C = 0x43 h = Ox68 i = 0x69 k = Ox6B a = 0x61 r = Ox72 a = 0x61 4*16+3 + 6*16+8 + 6*16+9 + 6*16+11+ 6*16+1 + 7*16+2 + 6*16+1 =67+104+105+107+97+114+97 =691 803+691=1494 0xdd8 = 0d1494 B、 朝、学校に行くまでの行程 def gakko(gentya, singou, douro) gentya で家を出発する singou で一時停止する jutai = douro が渋滞する end gentya(8時20分に学校に到着) jugyou(1限が9時に始まる) print("今日も頑張りましょう\n") 2、プログラム問題 Aを選択した。 プログラム本体 #!/usr/koeki/bin/ruby def factorial(m) if m == 1 return 1 else m * factorial(m -1) end end def paturn(a,b) if a == b return 1 elsif a < b print("組み合わせはできません\n") exit else factorial(a)/factorial(b)/factorial(a-b) end end STDERR.print("あなたの欲しいDVDは何枚ありますか?:") dvd = gets.chomp.to_i STDERR.print("1度の買い物で何枚買いたいですか?") buy = gets.chomp.to_i printf("%d種類のDVDの中から%d枚のDVDを買う時の組み合わせは%dパターンあり ます。\n",dvd,buy,paturn(dvd,buy)) 実行結果 pan{c109152}% ./def_combination.rb [~/Ruby] あなたの欲しいDVDは何枚ありますか?:6 1度の買い物で何枚買いたいですか?2 6種類のDVDの中から2枚のDVDを買う時の組み合わせは15パターンあります。 考察 正常に作動した。 他にも様々なことについてのプログラムを作ってみたい。 それと、今回は話し合いながら課題に取り組めたのでよかった。 感想 今回の課題も難しかった。 なのでプログラム問題はA問題しかできなかった。 来週はもっと頑張りたい。 参考文献 基礎プログラミング II 第5回 何度も呼び出そう 西村まどか著 http://roy/~madoka/2010/r2/05/ 共同学習者 森谷瑛二 奥山卓哉