第 5 回 何度も呼び出そう レポート課題 氏名:齋藤慶太 学籍番号:c1100851 語学クラス:英語2 コース(系):政策マネジメント 筆記問題A 16進数 10進数 S = 0x53 83 A = 0x41 65 I = 0x49 73 T = 0x54 84 O = 0x4f 79 K = 0x4b 171 E = 0x45 69 I = 0x49 73 T = 0x54 84 A = 0x41 65 16進数を2進数に変換 S 0x53 =1010011 A 0x41 =1000001 I 0x49 =1001001 T 0x54 =1010100 O 0x4f =1001111 K 0x4b =1001011 E 0x45 =1000101 I 0x49 =1001001 T 0x54 =1010100 A 0x41 =1000001 S 1010011 + 1000001 10010100 + 1001001 11011101 + 1010100 100110001 + 1001111 110000000 + 1001011 111001011 + 1000101 1000010000 + 1001001 1010111001 + 1010100 1100001101 + 1000001 1101001110 これを16進数に変換 11 0100 1110 =0x34eである。 10進数で計算すると 83+65+73+84+79+171+69+73+84+65=846 846/16= 52 余り13 前期に作成したプログラムを使用し pan{SAITO Keita}% ./ccc.rb [~/Ruby 好きな数字を入力してください0x34e 何進数に変換しますか(1:2進数、2:10進数、3:16進数)2 10進数だと846です pan{c110085}% ./ccc.rb [~/Ruby] 好きな数字を入力してください846 何進数に変換しますか(1:2進数、2:10進数、3:16進数)3 16進数だと34eです 一緒だと確認できる。 2.プログラム問題 A プログラム #!/usr/koeki/bin/ruby #最初の一文 STDERR.print("ノルマ一つで1円のアルバイトを引き受けました。\n") def kyuuryou(money,tassei) # printf("給料 %d, 達成数 %d\n",money,tassei) money += tassei #達成数が上ると給料が増加する money end def baito(sigoto,tassei) # printf("ノルマ %d, 達成数 %d\n",sigoto,tassei) sigoto -= tassei #達成数が上るとノルマが減少する sigoto if sigoto > 0 #回数を指定し繰り返しをさせる return sigoto else return 0 #回数をこなしたら終了させる end end n = 45 #ノルマの数 i = 0 #ノルマの達成数 k = 0 #給料の額 i0 = 9 #作業回数 STDERR.printf("ノルマは %d あります。現在の給料額は %d 円です。",n,k) while i < i0 STDERR.printf("%d 回目の作業をします。\n",i += 1) n = baito(n,i) #defの文と組み合わせる k = kyuuryou(k,i) #defの文と組み合わせる if n > 0 printf("ノルマの数: %d [個]\t給料の額 %d [円]\n",n,k) else printf("ノルマの数: %d [個]\t給料の額 %d [円]\n",n,k) printf("ノルマが達成されました。") end end 実行結果 pan{c110085}% ./def_combination.rb [~/Ruby] ノルマ一つで1円のアルバイトを引き受けました。 ノルマは 45 あります。現在の給料額は 0 円です。1 回目の作業をします。 ノルマの数: 44 [個] 給料の額 1 [円] 2 回目の作業をします。 ノルマの数: 42 [個] 給料の額 3 [円] 3 回目の作業をします。 ノルマの数: 39 [個] 給料の額 6 [円] 4 回目の作業をします。 ノルマの数: 35 [個] 給料の額 10 [円] 5 回目の作業をします。 ノルマの数: 30 [個] 給料の額 15 [円] 6 回目の作業をします。 ノルマの数: 24 [個] 給料の額 21 [円] 7 回目の作業をします。 ノルマの数: 17 [個] 給料の額 28 [円] 8 回目の作業をします。 ノルマの数: 9 [個] 給料の額 36 [円] 9 回目の作業をします。 ノルマの数: 0 [個] 給料の額 45 [円] ノルマが達成されました。 考察 作業は行う度に効率が良くなるのでノルマの減少させかたを一定ではなくした。 螢のプログラムを参考にして行ったが、殆ど同じプログラムの内容になってしまっ たので次回から改善したいと思う。 前回までSTDERRの意味が分からなかったが、今回課題をして意味を理解できたの で良かった。新しい文が増えていっているので復習などしてまとめたいと思う。 3.感想 機械的に繰り返すものは、身近なもので信号機やプリンターなどもそうだ感じ る。指示の信号を設定すると繰り返し無人で作業を行ってくれる信号機。 送信した内容を自動で分析し色の配置を考え色を用紙に印字してくれるプリン ターも機械的に繰り返されることをしている。 4.参考文献 西村先生ホームぺージ http://roy/~madoka/2011/r2/05/