5 月 2 日のレポートについて 語学クラス:XXXX語 XX 学籍番号:c106XXXX 氏名:XXXXXXXX 1-A 42.195 という数値に、to_i を使うとどうなるか to_iとは文字列を整数に変換するメソッド(手続き)なので、整数に変換され て出てくる。 参考資料*はてなダイアリー http://hatena.ne.jp 1-B 42.195が入力されたものであれば、変数にどのようになるか 整数値化した結果が、42。 3で割った結果が42.000000。 1-C 「stop」 という文字列を入れると止まるプログラムはどのように書くこと ができるか 例)カロリーメイタプログラム #!/usr/koeki/bin/ruby total = 0 cal = 0 while true STDERR.printf("摂取したカロリー [kcal] ( 入力終了は q ) : ") cal = gets.chomp if cal == "q" break end total += cal.to_i end printf("本日の総摂取カロリーは %d[kcal] でした\n", total) 上記のプログラムを参考にして考えてみる。 このプログラムでは「stop」のかわりに「q」を使って止めている。それを 設定しているのは、 if cal == "q" break end である。そして、 STDERR.printf("摂取したカロリー [kcal] ( 入力終了は q ) : ") にあるように、後に「入力終了はq」と書くことが大切である。 2-A-1 作成したプログラム #!/usr/koeki/bin/ruby kake = 1 total = 1 while true STDERR.print("かけたい数( 入力終了は q )") kake = gets.chomp if kake =="q" break end total *= kake.to_i end printf("現在のかけた総数は %d でした\n", total) 2-A-2 もとにしたプログラムからの変更点 もとにしたプログラムは上記のcal.to_iだ。cal.to_iでは total=0,cal=0,tatal+=cal.to_iとしたが、私が作成したプログラムでは total,calともに初期値が0であると必ず答えが0になってしまうので、 total=1,cal=1とした。また、calはkakeと変更したのでtotal=1,cal=1と なっている。 次に、total +=cal.to_iだと足し算になってしまうため、total *=kake.to_iとしてかけ算になるようにした。 2-A-3 プログラムを実行した結果画面 かけたい数( 入力終了は q )2 かけたい数( 入力終了は q )3 かけたい数( 入力終了は q )5 かけたい数( 入力終了は q )4 かけたい数( 入力終了は q )2 かけたい数( 入力終了は q )6 かけたい数( 入力終了は q )q 現在のかけた総数は 1440 でした 2-A-4 導き出された結果の考察 電卓で一度計算してみた結果、ちゃんとプログラムの結果と同じ総数であ ることがわかった。 2-B-1 作成したプログラム #!/usr/koeki/bin/ruby kazu = 0 yen = 0 total = 0 gokei = 0 while true print"個数は?(qで終了)" kazu = gets.chomp print"一個当たりの値段は?" yen = gets.chomp if kazu == "q" break end total =kazu.to_i*yen.to_i gokei += total printf("これまでの合計金額は %d です\n", total) end printf("合計金額は %d 円です\n", gokei) 2-B-2 もとにしたプログラムとの変更点 ●もとにしたプログラムはRubyプログラミング基礎講座p.43のプログラムを 参考とした。 ●まず、kazu=0,yen=0,total=0,gokei=0を追加し、次に繰り返しできるよう にするためにwhile--endを追記。この後、「q」を書くことにより終了さ せるため if kazu == "q" break end を追加させた。 ●kazu = gets.chomp.to_iとしていたのをkazu = gets.chompとし、同様に yenもする。 ●total =kazu.to_i*yen.to_i、gokei += totalを追記し、 printf("これまでの合計金額は %d です\n", total)とprintf("合計金額 は %d 円です\n", gokei)を追記して完成させた。 2-B-3 プログラムを実行した結果画面 個数は?(qで終了)2 一個当たりの値段は?56 これまでの合計金額は 112 です 個数は?(qで終了)34 一個当たりの値段は?54 これまでの合計金額は 1836 です 個数は?(qで終了)9 一個当たりの値段は?32 これまでの合計金額は 288 です 個数は?(qで終了)q 一個当たりの値段は? 合計金額は 2236 円です 2-B-4 導き出された結果の考察 電卓で計算した結果とプログラムでの結果は同じだったことが分かった。 3 感想 2の問題で、結果からその過程を求めることが難しかったが、教科書や先輩から 教えてもらい、その過程を導くことができて良かった。そして、勉強していく うちに分かっていくことがとても楽しいと思えるようになっていって嬉しい。 解くにプログラムを作っていくことが段々と楽しく思えるようになっているの でこれからも頑張っていきたいと思う。 次回は講義にちゃんとついていけるように少しでも教科書や、ホームページを みて勉強してこようと思った。