5月2日のレポートについて 語学クラス:XXXX語 XX 学籍番号:c106XXXX 氏名:XXXXXXXX 1, A.to_iを使うと to_i の性質を調べます 何か文字列をどうぞ ( 終了は x ) :42.195 42.195 で割った結果: 42 B. STDERR.print( )と gets.chomp が必要。 C. stopを入力すると、次のような画面になる。 to_i の性質を調べます 何か文字列をどうぞ ( 終了は x ) :stop 3 で割った結果: 0 この様に、結果が0で現れる。 2, A-A 考えた設定 数値を入力して、かけ算を次から次へと計算を行なうように設定した。 A-B 作成したプログラム #!/usr/koeki/bin/ruby while true STDERR.print("かけ算をします\n") STDERR.print("何か文字列をどうぞ ( 終了は x ) :") kakezann = gets.chomp if kakezann == "x" printf("x が入力されたので中止します\n") break else # printf("整数値化した結果: %d \n", kakezann.to_i) printf("4 でかけた結果: %d \n",kakezann .to_i*4) # printf("3 で割った結果: %f \n", kakezann.to_f/3) end end A-C もとにしたプログラムからの変更点 今日の講義の中で使ったプログラムをもとにした。 #!/usr/koeki/bin/ruby STDERR.print("to_i, to_f の性質を調べます\n") STDERR.print("何か文字列をどうぞ ( 終了は x ) :") string = gets.chomp if string == "x" printf("x が入力されたので中止します\n") else printf("整数値化した結果: %d \n", string.to_i) printf("3 で割った結果: %d \n", string.to_i/3) # printf("3 で割った結果: %f \n", string.to_f/3) end *STDERR よりも先に while true を入力しなければいけない。 *変数を string から kakezann に変更した。 *if string から if kakezann に変更した。 *while if を使ったら必ず end end と2ついれる。 * printf("3 で割った結果: %d \n", string.to_i/3)の 3 の所を printf("4 でかけた結果: %d \n",kakezann .to_i*4)と変更。 かけ算をしたいから、"*"を使用した。 A-D プログラムを実行した結果画面 かけ算をします 何か文字列をどうぞ ( 終了は x ) :4 4 でかけた結果: 16 かけ算をします 何か文字列をどうぞ ( 終了は x ) :7 4 でかけた結果: 28 かけ算をします 何か文字列をどうぞ ( 終了は x ) :2 4 でかけた結果: 8 かけ算をします 何か文字列をどうぞ ( 終了は x ) :x x が入力されたので中止します A-E 導き出された結果の考察 Kterm で xcalc& を開きそこで計算して確認してみた。 また。手計算によって確認し、結果画面と同じ結果が出てくるか確認した。 A-F 参考文献 西村先生の授業用のホームページ "第3回 文字の入出力" を参考にしました。 http://roy/~madoka/2007/r1/03/ より。 B-A 考えた設定 数値を二つ入力して、個数と金額の合計を計算して表示させる。 B-B 作成したプログラム #!/usr/koeki/bin/ruby total = 0 while true STDERR.print("個数を入力します。\n") STDERR.print("何か文字列をどうぞ(終了は x) :") kosuu = gets.chomp STDERR.print("金額を入力します。\n") STDERR.print("何か文字列をどうぞ(終了は x) :") kinngaku = gets.chomp if kosuu =="x" printf("x が入力されたので中止します。\n") break else total =kinngaku.to_i*kosuu.to_i printf("2の結果: %d \n",total .to_i) end end B-Cもとにしたプログラムからの変更点 #!/usr/koeki/bin/ruby STDERR.print("to_i, to_f の性質を調べます\n") STDERR.print("何か文字列をどうぞ ( 終了は x ) :") string = gets.chomp if string == "x" printf("x が入力されたので中止します\n") else printf("整数値化した結果: %d \n", string.to_i) printf("3 で割った結果: %d \n", string.to_i/3) # printf("3 で割った結果: %f \n", string.to_f/3) end *total = 0と入力し合計の初期化設定をした。 *while true と入力した。 * STDERR.print("to_i, to_f の性質を調べます\n")から STDERR.print("個数を入力します。\n")として、文字を変換させた。 *今回のプログラムの場合だと、個数と金額を求めた合計の場合の3パターンの変 数を作成しなければならないので、もとにしたプログラムを参考にしながら、 つけ足していった。 *whileと ifをつけたので end を最後に忘れずにつける。 B-D プログラムを実行した結果画面 個数を入力します。 何か文字列をどうぞ(終了は x) :2 金額を入力します。 何か文字列をどうぞ(終了は x) :50 2の結果: 100 個数を入力します。 何か文字列をどうぞ(終了は x) :x 金額を入力します。 何か文字列をどうぞ(終了は x) :x x が入力されたので中止します。 B-D 導き出された結果の考察 printf(%d \n",total .to_i)と入力して、もう一度 Kterm で数字を入力し てみて、間違いがないか確認を行なった。 Kterm で xcalc& を開きそこで計算して確認してみた。 B-F 参考文献 西村先生の授業用のホームページ "第3回 文字の入出力" を参考にしました。 http://roy/~madoka/2007/r1/03/ より。 3、感想 今回のレポート課題では、もとにしたプログラムを参考にしながらだけれど、 一通り自分でプログラムを作成することを頑張れました。while や if の使い 方をマスターできたように感じます。コンピューターは、そのまま入力したも のを、間違いの有無関係なく、起動するので今後気をつけて入力ミスをしないよ うに頑張っていきたいです。次回は、進数計算がでてくるみたいなので、計算 とプログラムの使い方をすばやく行なえるように頑張ります。 ----Next_Part(Wed_May__2_18_11_06_2007_589)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="mul.rb" #!/usr/koeki/bin/ruby while true STDERR.print("かけ算をします\n") STDERR.print("何か文字列をどうぞ ( 終了は x ) :") kakezann = gets.chomp if kakezann == "x" printf("x が入力されたので中止します\n") break else # printf("整数値化した結果: %d \n", kakezann.to_i) printf("4 でかけた結果: %d \n",kakezann .to_i*4) # printf("3 で割った結果: %f \n", kakezann.to_f/3) end end ----Next_Part(Wed_May__2_18_11_06_2007_589)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="rcpt.rb" #!/usr/koeki/bin/ruby total = 0 while true STDERR.print("個数を入力します。\n") STDERR.print("何か文字列をどうぞ(終了は x) :") kosuu = gets.chomp STDERR.print("金額を入力します。\n") STDERR.print("何か文字列をどうぞ(終了は x) :") kinngaku = gets.chomp if kosuu =="x" printf("x が入力されたので中止します。\n") break else total =kinngaku.to_i*kosuu.to_i printf("2の結果: %d \n",total .to_i) end end ----Next_Part(Wed_May__2_18_11_06_2007_589)----