5月10日のレポートについて XXXXXX c105XXXX XXXXXクラス 1.掛け算するプログラム multiple.rbについて a)作成したプログラム #!/usr/koeki/bin/ruby sum=1 while true STDERR.print("掛け算をするので入力してください。 (止めたい場合は d を押す): ") item = gets.chomp! if item == "d" then break end sum *= item.to_i printf(" この時点での積の合計は %d です。\n", sum) end printf("最終的な積の合計は %d になりました。 \n", sum) b)プログラムの各行の説明 一行目はRubyでプログラムが始まるという意味である。 三行目は合計の和を入れておく変数という意味である。 五行目は"while -- end"内に書かれていることができる間続けよという意味であ る。 七行目はユーザーに数値を入力させるときの表示の意味である。 九行目は読みこんだ文字列を item にしまうという意味である。 行目はもしも"d"がitemにしまわれた場合はという意味である。 十一行目は反復せよという意味である。 十二行目はもしもitemが"d"に等しいならば反復をやめよの条件文の終了を表す という意味である。 十三行目はitemに入った文字列を数値として取り扱い、数値に変換する際、小数点 があれば切り捨てよという意味である。 十五行目は表示という意味であり、("")の中に表示する文を書くという意味である。 十八行目はwhile --- endの終了を表すという意味である。 二十行目は表示という意味であり、("")の中に表示する文を書くという意味であ る。 c)プログラムの実行結果 掛け算をするので入力してください。 (止めたい場合は d を押す): 2 この時点での積の合計は 2 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): 3 この時点での積の合計は 6 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): 4 この時点での積の合計は 24 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): 5 この時点での積の合計は 120 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): 6 この時点での積の合計は 720 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): 4 この時点での積の合計は 2880 です。 掛け算をするので入力してください。 (止めたい場合は d を押す): d 最終的な積の合計は 2880 になりました。 (考察) if -- then -- endの条件文でこの構造を用いる事でプログラムの始めと終わり をしっかりと区別でき、この条件を基本として数値だけ変えても成り立つのでこ の条件は重要だという事に気付いた。 2. (感想) 今回の講義で学んだ、C-x i でつくったプログラムをメール画面の指定した所に 張り付けられる事は非常に便利であり、大いに活用出来ると思った。プログラム が正常に動くかを確認する際、最初の確認で間違った部分があり、それに気付い て修正するのに手間取った。