第7回 基礎プログラミング I レポート課題 氏名:佐々木翔平 学籍番号:C1090785 語学クラス:英語 コース(系):環境サイエンス ------------------------------------------------------------------ 1 A、0b11110110=0xf6 計算の確認 1 1 1 1 0 1 1 0 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 128 64 32 16 8 4 2 1 128+64+32+16+8+4+2+1=246 pan{c109078}% bc -l [~/Ruby] 128+64+32+16+0+4+2+0 246 246÷16=15...6 15は16進数でFと表せるのでF6となる。 よって0b11110110 = 0xf6と表せる。 ------------------------------------------------------------------ B、0d256=0x100 計算の確認 256÷16=16...0 16÷16=1...0 1÷16=0...1 計算してでてきた余りを下から順番に並べていくと100となる。 よって、0d256=0x100と表せる。 ------------------------------------------------------------------ 2 A、 設定 乾電池の売り上げと客単価を計算させるプログラムを作る。 8 個入りは 400 円(Aタイプ)、6 個入りは 300 円(Bタイプ)、ばら売りは 50 円(Cタイプ) とする。 ------------------------------------------------------------------ プログラム本体 #!/usr/koeki/bin/ruby -Ke 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 < taipu.length printf("%-10s\t%d\n",taipu[k], uriage[k]) k += 1 end tanka = sum / 9 printf("客単価は %2.1f 円です。\n",tanka) printf("その日の売上げは %d 円です。\n",sum) ----------------------------------------------------------------- 実行結果 pan{c109078}% ./open_battery.rb [~/Ruby] 売上げ数 A 1 B 2 C 3 C 5 B 1 A 6 B 3 A 1 C 8 客単価は 527.3 円です。 その日の売上げは 5800 円です。 ------------------------------------------------------------------ 考察 実行結果が正しく計算されているかわからないため、確かめ算をおこなった。 売上げの計算 pan{c109078}% bc -l [~/Ruby] 400+600+150+250+300+2400+900+400+400 5800 quit 客単価の計算 pan{c109078}% bc -l [~/Ruby] 5800/9 644.44444444444444444444 quit 実行結果と確かめ算によりきちんと売上げと客単価の計算が行われている事が わかった。よって、このプログラムは正しく機能したといえる。 主な機能の説明 最初のArray.newは新しい配列を作るということだから、taipuとuriageという配 列を作るプログラムになる。 open("battery.dat" , "r") do |f|はbettery.datというファイルを開きfという 名前にするプログラムになる。 ------------------------------------------------------------------ 3、感想 今回一番頑張ったことはプログラミングです。最初は何をすればいいかわからな かったけど、先輩から手伝ってもらえたので、なんとか完成させる事ができまし た。次からは一人でも出来るようにもっと勉強したいと思います。 ------------------------------------------------------------------ 4、参考文献 webサイト:CyberLibrarian http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html 2進数、16進数と10進数 協力してくれた先輩:五代儀公大さん