6月13日のレポート 語学クラス: XXXX語XX 系: XXXX系 学籍番号: c106XXXX 氏名: XXXXXXXX 1. A.0x11 + 0x22 = 0x?? 0xを10進数に直す必要があるので 0x11 = 0d?? 1 × 16の1乗 + 1 × 16の0乗 = 0d17 0x22 = 0d?? 2 × 16の1乗 + 2 × 16の0乗 = 0d34 0d17 + 0d34 = 0d51 と足してでるのでこれを16進数に直す。 0d51 = 0x?? 51 ÷ 16 = 3 余り 3 と割る必要があるので答えは 0x = 33 よって 0x33 B. 0x11 + 0xee = 0x?? 先ほどAで解いたので、0x11 = 0d17 0xee = 0d?? 0xeeの e は、参考URLを見ると e = 14となるので下の式に代入する。 e × 16の1乗 + e × 16の0乗 = 238 0d17 + 0d238 = 0d255 と足してでるのでこれを16進数に直す。 0d255 = 0x?? 255 ÷ 16 = 15 余り 9 と割る必要があるので答えは 0x = 159 よって 0x159 C. 0xaa - 0x11 = 0x?? 先ほどAで解いたので、0x11 = 0d17 0xee = 0d?? 0xaaの a は、参考URLを見ると a = 10となるので下の式に代入する。 a × 16の1乗 + a × 16の0乗 = 170 0d170 - 0d17 = 0d153 と引いてでるのでこれを16進数に直す。 0d153 = 0x?? 153 ÷ 16 = 9 余り 5 と割る必要があるので答えは 0x = 95 よって 0x95 参考URL http://roy/~madoka/2007/r1/04/04-12-binary2.html 2.自分のホームページのURLを載せるので見て下さい。 URL http://roy/~c106054/ 行き方は、加藤雄也の宿題集にあるレポートの企画書 加藤雄也の 部分をクリックして下さい。 3. 考えた設定 前回のcafe.rbをもう少し改良できると考えた。改良することによりさらに実 用性を作り、さらにダウンロードをした人が書き変えをすることでさらなる 可能性が生まれるプログラムを作りたいと考えました。 作成したプログラム cafe.rb #!/usr/koeki/bin/ruby # Rubyでプログラミングをする n = 0 # nの初期値を0にする sum = 0 # sumの初期値を0にする sum2 = 0 # sum2の初期値を0にする sum3 = 0 # sum3の初期値を0にする open("kuromori.dat","r") do |candidate| # kuromori.datからファイルを開く while kuromori =candidate.gets if /(\S+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\S+)\s+(\d+)/ =~ kuromori sum += $6.to_i # (\S+)は文字列を表す sum2 += $2.to_i # /s+ はスペースの文字列を表す sum3 += $4.to_i # (\d+)は数字の列を表す n += 1 end end end average = sum/n printf("合計売り上げは %d円です。\n", sum) printf("今回の客単価は %4.1d 円でした。 \n",average) printf("今回の Bランチの注文数は %d です。\n", sum2) #printf("")の中を 書き変えれば表示される 名前が変わります printf("今回の 特盛ランチの注文数は %d です。\n", sum3) if $2 > $4 # ifを使い、$2が$4より大きかった場合 print"Bランチの方が注文された数が多かった!!!!\n" #print""の中を書き変えれば elsif 表示される名前が変わり ます $2 == $4 # $2と$4が同じだった場合 print"Bランチと特盛ランチの方が注文された数が同じだった!!!!\n" else # それ以外の場合 print"特盛ランチの方が注文された数が多かった!!!!\n" end if $2 > $4 print"今回からはBランチで行こう!!!!他の新メニューを考えよう\n" #上のprint と同じです elsif $2 == $4 print"Bランチと特盛ランチで行くしか無い!!!!!\n" else print"今回からは特盛ランチで行こう!!!!Bランチは諦めるか……\n" end kuromori.dat 碇シンジ樣 1 Bランチ 0 特盛ランチ 550 碇ゲンドウ樣 0 Bランチ 1 特盛ランチ 700 碇ユイ樣 1 Bランチ 0 特盛ランチ 550 葛城ミサト樣 0 Bランチ 1 特盛ランチ 700 赤木リツコ樣 1 Bランチ 0 特盛ランチ 550 綾波レイ樣 1 Bランチ 0 特盛ランチ 550 惣流アスカラングレー樣1 Bランチ 0 特盛ランチ 550 渚カヲル樣 1 Bランチ 0 特盛ランチ 550 鈴原トウジ樣 0 Bランチ 1 特盛ランチ 700 相田ケンスケ樣 1 Bランチ 0 特盛ランチ 550 #名前や数字の間にあるスペースは消さないで下さい プログラムが起動しなくなります。 もとにしたプログラムからの変更点 cafe.rbに自然にkuromori.datを開けるようにしたかったので open("kuromori.dat","r") do |candidate| # kuromori.datからファイルを開く while kuromori =candidate.gets を付け加えた。 cafe.rbに結論を付け加えたかったので if $2 > $4 print"今回からはBランチで行こう!!!!他の新メニューを考えよう\n" #上のprint と同じです elsif $2 == $4 print"Bランチと特盛ランチで行くしか無い!!!!!\n" else print"今回からは特盛ランチで行こう!!!!Bランチは諦めるか……\n" end プログラムの結果画面 irsv{c106054}% ./cafe.rb [~/Ruby] 合計売り上げは 5950円です。 今回の客単価は 595 円でした。 今回の Bランチの注文数は 7 です。 今回の 特盛ランチの注文数は 3 です。 Bランチの方が注文された数が多かった!!!! 今回からはBランチで行こう!!!!他の新メニューを考えよう 導き出された結果の考察 irsv{c106054}% bc -l [~/Ruby] 550+700+550+700+550+550+550+550+700+550 5950 irsv{c106054}% bc -l [~/Ruby] (550+700+550+700+550+550+550+550+700+550)/10 595.00000000000000000000 と確かめた所あっていました。自分も手計算したところあっていましたので 安心しました。 参考文献 URL 企画書などの書き方 http://roy/~madoka/2007/r1/09/stringtheory/sample.html カレンダーの参考文献 http://roy/~madoka/2007/r1/04/04-18-cal.html ホームページなどの参考文献 http://roy/~madoka/2007/r1/09/ 4. 感想 今回はまず何をどのように改良しようか迷っていたが、楽しみながら できたので、自分も進歩していると感じれました。 プログラムを作るのも楽しみながらできてきたので良かった。 ファイル名48は添付を間違えてしまいました。 最後に、私は実務プログラムにいきたいと思います。