5 月 2 日のレポートについて 語学クラス:XXXX語選択XX 学籍番号:c106XXXX 氏名:XXXXXXXX 1. A.to_iとは、文字列を整数の形に変換するメソッドである。つまり小数点以下 を切捨てるので、「42.195」は「42」に変換され変数にしまわれる。 B.変数をiとするならば、i = gets.chomp が必要である。 C. #!/usr/koeki/bin/ruby while true STDERR.print("stopで入力を終了します。 →") p = gets.chomp if p == "stop" print"\nさようなら\n\n" break end end 2. A. #!/usr/koeki/bin/ruby result = 1 while true STDERR.print("数字を入力して下さい。次々と掛けていきます。\n止める場合は、eを押して下さい。 →") e = gets.chomp if e == "e" print"\nお疲れ様でした。\n\n" break end result *= e.to_i printf("現在の値: %d \n\n",result) end printf("合計は %d です。\n",result) B. a)考えた設定 レジのようなものを操作するプログラム。 b)作成したプログラム #!/usr/koeki/bin/ruby gokei = 0 a_kosu = 0 a_gokei = 0 STDERR.print"名前を入力してください。\n※日本語入力は Shift+Spaceです。\s\s:" name = gets.chomp printf("\nレジに入力します %s さん。個数と値段を入力してください。 \n終わるときは e と入力してください。\n\n",name) print("====================================\n") while true STDERR.print("\n個数: ") kosu = gets.chomp if kosu == "e" break end STDERR.print("\n値段: ") nedan = gets.chomp if nedan == "e" break end gokei = kosu.to_i * nedan.to_i a_kosu += kosu.to_i a_gokei += gokei.to_i end print("\n====================================") printf("\n\n%sさん、本日の売上の精算です。\n\n個数の合計: %5d 個\n値段の合計: %5d 円\n\nです。\n\n",name ,a_kosu ,a_gokei) c)もとにしたプログラムからの変更点 mul.rbと今回の課題の1のCの「stop」を使うプログラムをもとにした。 変更点 ・プログラムの最初に名前を入力させ、対話式のプログラムにした。 ・値段の合計だけでなく、個数の合計も出した。 d)実行結果 irsv{c106179}% ruby rcpt.rb [~/Ruby] 名前を入力してください。 ※日本語入力は Shift+Spaceです。 :ルビ緒 レジに入力します ルビ緒 さん。個数と値段を入力してください。 終わるときは e と入力してください。 ==================================== 個数: 2 値段: 100 個数: 5 値段: 10 個数: 3 値段: 50 個数: e ==================================== ルビ緒さん、本日の売上の精算です。 個数の合計: 10 個 値段の合計: 400 円 です。 e)結果の考察 電卓で手計算したところ、正確な値であった。 d)参考文献 「たのしいRuby」高橋征義・後藤裕蔵 著 3 .感想 今回は自分でアレンジした部分が多かった。これから先プログラムを作って いく上で、重要なのは「独自の発想」であると感じた。 rcpt.rbをより良いプログラムにするには、決まった商品名と値段を提示し、 商品と値段を読みこんでそれぞれの個数を入れ最終的にレシートの様な形で 出力できれば、本物に近いレジのプログラムになるのではないかと思った。