第7回 基礎プログラミング I レポート課題 氏名: 阿部祐樹 学籍番号: c1090041 語学クラス: 英語1 コース(系): 地域 1、筆記問題 A. 0b 11110110 = 0x?? 0b 11110110 を右から4桁ずつ区切っていく。 1011と0110にわける。 「1011」は 「0110」は 1 * 2の3乗 = 8 0 * 2の3乗 = 0 1 * 2の2乗 = 4 1 * 2の2乗 = 4 1 * 2の1乗 = 2 1 * 2の1乗 = 2 1 * 2の0乗 = 1 0 * 2の0乗 = 0 よって 8 + 4 + 2 + 1 = 15 よって 0 + 4 + 2 + 0 = 6 「15」を16進数表示にすると「15=f」なので、 0b10110110 = 0xf6 となる。 B 0d 256 は10進数なので、1度2進数に直します。 256 / 2 = 128余り0 128 / 2 = 64余り0 64 / 2 = 32余り0 32 / 2 = 16余り0 16 / 2 = 8余り0 8 / 2 = 4余り0 4 / 2 = 2余り0 2 / 2 = 1余り0 1 / 2 = 0余り1 Od 256 = Ob 100000000 となる。 Ob 100000000を16進数に変換する。 まず、100000000を右から4桁ごとに区切っていく。 0001と0000と0000にわける。 これらを16進数に変換すると 0001は、 0 * 2の3乗 = 0 0 * 2の2乗 = 0 0 * 2の1乗 = 0 1 * 2の0乗 = 1 よって、0+0+0+1=1 0000を16進数に変換すると 0 * 2の3乗 = 0 0 * 2の2乗 = 0 0 * 2の1乗 = 0 0 * 2の0乗 = 0 よって、0+0+0+0=0 もう1つの0000も答えは同じなので 0000 = 0 つまり、Od 256 = Ox 100 となる。 2、プログラム問題 A作成したプログラム #!/usr/koeki/bin/ruby taipu = Array.new uriage = Array.new sum = 0 i = 0 open("battery.dat","r") do |f| while buy = f.gets if /(\S+)\s+(\d+)/ =~ buy taipu[i] = $1 uriage[i] = $2.to_f if taipu[i] == "A" a = 400 * uriage[i] elsif taipu[i] == "B" a = 300 * uriage[i] else a = 50 * uriage[i] end sum += a i += 1 end end end k = 0 print("%売上げ数\n") while k