語学クラス:XXXX語XX 系:XXXX系 学籍番号:c106XXXX 氏名:XXXXXXXX A:0x abc = 0b?? 0x a → 0b 1010 0x b →0b 1011 0x c → 0b 1100 よって、0x abc = 0b 101010111100 B:0b 11010001 + 0b1 - 0b 1100 = 0d?? まず、2進数を10進数に直す。 0b 11010001 1×2**7 + 1×2**6 + 0×2**5 + 1×2**4 + 0×2**3 + 0×2**2 +0×2**1 +1×2**0 よって、128 + 64 + 16 + 1 = 209 0b 1 1×2**0 = 1 よって、 1 0b 1100 1×2**3 + 1×2**2 + 0×2**1 + 0×2**0 よって、8 + 4 + 0 + 0 = 12 したがって、 209 + 1 - 12 = 198 答え 0b 11010001 + 0b 1 - 0b 1100 = 0d 198 2: A 考えた設定 今回作成したプログラムは、ビデオレンタルの料金を計算し、 その平均をもとめるプログラムです。 人名は、三国志からあまり知られていないような人達を ピックアップしました。 映画名は実際のもので、私が過去に見た映画を使いました。 作成したプログラム #!/usr/koeki/bin/ruby # Rubyでプログラミングを始める。 sum = 0 # sumの初期値を0にする。 i = 0 # iの初期値を0にする。 while iimori = gets # データを取って来る。 if /(\S+)\s+(\S+)\s+(\d+)/ =~ iimori #三つ目の文字列が数字なら sum += $3.to_i # データの三つ目の文字列を足していく。 i += 1 # i に 1 ずつ足していく。 end # whielの終わり end # if の終わり average = sum/i printf("合計は、%d 円です。\n", sum) printf("平均売り上げは %4.1i 円です。 \n", average) 作成したデータ 朱然 ルパン3世 ワルサーP38 200 陳武 ルパン3世 くたばれ!ノストラダムス 400 程普 ルパン3世 バイバイ・リバティー・危機一髪 1000 周魴 ルパン3世 ロシアより愛をこめて 100 陸積 ドラゴンボールZ この世で1番強いヤツ 600 凌操 ドラゴンボールZ 地球まるごと超決戦 900 諸葛瑾 SLAM DUNK(映画) 500 孫堅 SLAM DUNK 全国制覇だ!桜木花道 700 プログラムの実行結果 irsv{c106185}% ./rental.rb iimori.dat [~/Ruby] 合計は、4400 円です。 平均売り上げは 550 円です。 結果の考察 合計金額 irsv{c106185}% bc -l [~/Ruby] 200+400+1000+100+600+900+500+700 4400 平均売り上げ irsv{c106185}% bc -l [~/Ruby] (200+400+1000+100+600+900+500+700)/8 550.00000000000000000000 とbc -lで出たので、成功したと言える。 このプログラムなら客が何人いようと合計金額と平均客単価が 計算できるためもう少し綺麗なプログラムが出来れば起業などでも 使ってくれるかも知れない。 参考文献 三国志の登場人物一覧 http://ja.wikipedia.org/wiki/%E4%B8%89%E5%9B%BD%E5%BF%97%E7%99%BB%E5%A0%B4%E4%BA%BA%E7%89%A9%E4%B8%80%E8%A6%A7 ルパン3世 TVスペシャル一覧 http://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%91%E3%83%B3%E4%B8%89%E4%B8%96#TV.E3.82.B9.E3.83.9A.E3.82.B7.E3.83.A3.E3.83.AB ドラゴンボール 映画一覧 http://ja.wikipedia.org/wiki/%E3%83%89%E3%83%A9%E3%82%B4%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%AB_%E7%A5%9E%E9%BE%8D%E3%81%AE%E4%BC%9D%E8%AA%AC SLAM DUNK 映画一覧 http://ja.wikipedia.org/wiki/SLAM_DUNK#.E6.98.A0.E7.94.BB データから平均を求めるには http://roy/~madoka/2007/r1/08/08-04-addition.html 2-B: 作成したプログラムの設定 今回のプログラムは、レストランの注文された各ランチの数と、その日の合計、 そして、客単価が、表示されるプログラムです。 また、AランチとBランチでどちらが多かったか、又は、同じ数だったか 表示される。 データの客の名前は、これもまた三国志の登場人物から名前をいただいた。 作成したプログラム #!/usr/koeki/bin/ruby sum = 0 sum2 = 0 sum3 = 0 sum4 = 0 i = 0 while iimori = gets if /(\S+)\s+(\d+)\s+(\d+)\s+(\d+)/ =~ iimori sum += $4.to_i sum2 += $2.to_i sum3 += $3.to_i i += 1 end end if $2 > $3 print "Aランチの方が注文が多かった。\n" elsif $2 == $3 print "AランチとBランチの注文数は同じでした。\n" else print "Bランチの方が注文が多かった。\n" end average = sum/i printf("Aランチは、 %d 回注文された。\n", sum2) printf("Bランチは、 %d 回注文された。\n", sum3) printf("合計売上は、%d 円です。\n", sum) printf("平均売り上げは %4.1i 円です。 \n", average) 作成したデータ 馬岱 1 0 650円 馬謖 0 1 550円 馬忠 0 1 550円 馬良 0 1 550円 馬勲 1 0 650円 孟逹 0 1 550円 関索 1 0 650円 張翼 0 1 550円 厳顔 0 1 550円 実行した結果 irsv{c106185}% ./cafe.rb kuromori.dat [~/Ruby] Bランチの方が注文が多かった。 Aランチは、 3 回注文された。 Bランチは、 6 回注文された。 合計売上は、5250 円です。 平均売り上げは 583 円です。 結果の考察 合計金額は、 irsv{c106185}% bc -l [~/Ruby] 650+550+550+550+650+550+650+550+550 5250 平均売り上げは、 irsv{c106185}% bc -l [~/Ruby] (650+550+550+550+650+550+650+550+550)/9 583.33333333333333333333 となったため、計算は成功しているといえるだろう。 参考文献 三国志の登場人物一覧 http://ja.wikipedia.org/wiki/%E4%B8%89%E5%9B%BD%E5%BF%97%E7%99%BB%E5%A0%B4%E4%BA%BA%E7%89%A9%E4%B8%80%E8%A6%A7 感想 今回のレポートは、平均を出すまでは授業でやったことのため早くできたが 合計の sum の使い方を忘れていたため時間がかかった。 しかし、今回のレポートのお陰で使い方は覚えられそうです。 また、Bのレポートの方は if の使い方を覚えていたため A の レポートよりも時間がかからなくてすみました。 次からは、人に聞かれても答えられるぐらいになりたいです。