第7回 基礎プログラミング I レポート課題 氏名:酒井信市郎 学籍番号:c1090733 語学クラス:英語1 コース(系):政策 -------------------------------------------------------------------------------- 1、筆記問題 A、0b11110110 まず10進数に直す。 0b11110110 = (0*2^0)+(1*2^1)+(1*2^2)+(0*2^3)+(1*2^4)+(1*2^5)+(1*2^6)+(1*2^7) = 0+2+4+16+32+64+128 = 246 次に16進数に直す。 246/16 = 15余り6 15/16 = 0余り15 15は16進法で f になる。 答えは、0b11110110 = 0xf6 B. 0d256 256/16 = 16余り0 16/16 = 1余り0 1/16 = 0余り1 答えは、0d256 = 0x100 -------------------------------------------------------------------------------- 2、プログラミング問題 #!/usr/koeki/bin/ruby taip = Array.new uriage = Array.new i = 0 total = 0 open("battery.dat","r") do |denti| #ファイルを開いてデータを読み込ませる while biribiri = denti.gets if /(\S+)\s+(\d+)/ =~ biribiri # print biribiri taip[i] = $1 uriage[i] = $2.to_i if taip[i] == 'A' #Aタイプの電池の場合 a = 400 * uriage[i] #400円の売り上げ elsif taip[i] == 'B' #Bタイプの電池の場合 a = 300 * uriage[i] #300円の売り上げ elsif taip[i] == 'C' #Cタイプの電池の場合 a = 50 *uriage[i] #50円の売り上げ end total += a i += 1 end end end k = 0 print("売上の数\n") while k < taip.length printf("%-10s\t%d\n", taip[k], uriage[k]) k += 1 end nedan = total / 6 #客単価の計算 printf("客単価 %2.1f 円\n",nedan) #客単価の表示 printf("本日の合計売上 %d円\n",total) #売上の表示 <実行結果> pan{c109073}% ./open_battery.rb [~/Ruby] 売上数 A 1 B 3 C 5 A 7 B 9 C 1 客単価 1183.0 円 本日の売上 7100円 <考察> pan{c109073}% bc -l [~/Ruby] 400*8 3200 300*12 3600 50*6 300 3200+3600+300 7100 7100/6 1183.33333333333333333333 実行結果よりプログラムが正しいことが分かりました。 <感想> 今回のプログラミングは、先生にヒントを出してもらうことが出来てとても助 かりました。先生のヒントをどうやって使うかとても苦労しましたが、友だちと やっていくうちに何とか出来ました。最初は、授業で使ったプログラムをもっ と多く使うものだと思っていました。最後は、先生から教えてもらった値段とタイプと 合計を出すプログラム、単価を計算し表示するプログラムでいいことが分かり ました。 プログラミングが少しずつ楽しく思えるようになってきたので、次回からも やる気を出して頑張ろうと思います。 <協力者> 永井絹人 木内雄 久保田瑛一郎 <参考文献> http://roy/~madoka/2010/r1/07/ 基礎プログラミング I 第7回 正規表現と Ruby 言語でのプログラミング 西村まどか著