語学クラス:XXXX語 学籍番号:c106XXXX 氏名:XXXXXXXX 1 以下の問に答えよ。変数を使う必要があれば、変数の名前を宣言してから答えよ。 A. 42.195 という数値に、to_i を使うとどうなるか、答えよ。 またこの数値が入力されたものであれば、変数にどのようにしまわれているか、答えよ。 小数点以下が切り捨てられ整数である42になる。 入力されたものならば文字列として変数に代入される。 B. 文字を入力するにはどのようなプログラム部分が必要か、答えよ。 入力の読み取りには gets method を使う。 str = gets 改行文字を取り除くには、chomp method を用いる。 str0 = gets.chomp C. 「stop」 という文字列を入れると止まるプログラムはどのように書くことができるか、答えよ。 p=0 while true#無限ループ STDERR.print("stopで終了 : ") p = gets.chomp #pに値を代入 if p == "stop" break#ループから抜ける end end 2 以下の問を順番にできるところまで答えよ。 2 問目からは、考え方だけでもよい。手計算を必ず行い、 自分のプログラムに間違いがないか、調べておくこと。 A. 数値を入力して、次々とかけ算するプログラム mul.rb を作成せよ。 考えた設定:掛け算のみの計算機 作成したプログラム:mul.rb 元にしたプログラムからの変更点:足算を掛け算に変更 プログラムを実行した結果画面: 入力した数値を全て掛け算します (入力終了は q ) : 2 入力した数値を全て掛け算します (入力終了は q ) : 4 入力した数値を全て掛け算します (入力終了は q ) : 3 入力した数値を全て掛け算します (入力終了は q ) : 1 結果は24になりました 導き出された結果の考察:2*4*3*1=24 計算はあっていた 参考文献:http://roy/~madoka/2007/r1/03/03-10-caloryprog.html #-- mul.rb --# #!/usr/koeki/bin/ruby total = 1 p = 0 while true STDERR.printf("入力した数値を全て掛け算します ( 入力終了は q ) : ") p = gets.chomp if p == "q" break end total *= p.to_i end printf("結果は%dになりました\n", total) #-- mul.rb --# B. 数値を 2 つ(個数と 1 個当たりの値段を)入力して、 最後に合計を出すプログラム rcpt.rb を作成せよ。 考えた設定:簡易レジスター 作成したプログラム:rcpt.rb 元にしたプログラムからの変更点:省略 プログラムの実行結果画面: irsv{c106182}% ./rcpt.tb 個数と値段を繰り返し入力し合計をだすプログラム 個数に q を入力すると終了します 個数:3 値段:55 個数:76 値段:27 個数:54 値段:2 個数:q 値段の語承けは 2325 円です 導き出された結果の考察:3*55+76*27+54*2=2325 計算があっていた 参考文献:http://roy/~madoka/2007/r1/03/ #-- rcpt.rb --# #!/usr/koeki/bin/ruby total=0 printf("個数と値段を繰り返し入力し合計をだすプログラム\n") printf("個数と値段に q を入力すると終了します\n") while true c=0 n=0 STDERR.printf("個数:") c = gets.chomp if c == "q" break end STDERR.printf("値段:") n = gets.chomp total += c.to_i * n.to_i end printf("値段の合計は %d 円です\n",total) #-- rcpt.rb --# 3.感想 プログラムは失敗なく書くことが出来た。しかし、まだEmacsの操作になれず、一 度書いたものを消してしまって書き直すはめになってしまったことを反省したい。 Emacsの操作方法を覚えると共に、エラーメッセージを読める程度の英語力をつ けていきたいと思った。 ----Next_Part(Wed_May__2_13_53_00_2007_109)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rcpt.rb" #!/usr/koeki/bin/ruby total=0 printf("個数と値段を繰り返し入力し合計をだすプログラム\n") printf("個数に q を入力すると終了します\n") while true c=0 n=0 STDERR.printf("個数:") c = gets.chomp if c == "q" break end STDERR.printf("値段:") n = gets.chomp total += c.to_i * n.to_i end printf("値段の合計は %d 円です\n",total) ----Next_Part(Wed_May__2_13_53_00_2007_109)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mul.rb" #!/usr/koeki/bin/ruby total = 1 p = 0 while true STDERR.printf("入力した数値を全て掛け算します ( 入力終了は q ) : ") p = gets.chomp if p == "q" break end total *= p.to_i end printf("結果は%dになりました\n", total) ----Next_Part(Wed_May__2_13_53_00_2007_109)----