C105XXXXX XXXXXXXX クラスXX 1.掛け算するプログラムmultiple.rbを作る a)作成したプログラム #!/usr/koeki/bin/ruby sum=1 while true STDERR.print("何人ですか?(止めたい場合は q を押す):") item = gets.chomp! if item == "q" then break end sum *= item.to_i printf(" 合計人数は %d 人です。\n", sum) end printf("合計人数は %d 人になりました。\n", sum) b)プログラムの各行の説明 一行目はRubyでプログラムが始まるということである。 二行目は数を代入するためのsum 三行目はwhile-endの間に書いてあることを続ける。 四行目は打ち込む人に数字を入力させるための文の表示 五行目はitemは変数でありgets.chopは打ち込んだ文字 を読み取るので、文字をitemに代入することである。 また、gets.chop!で読みこんだ文字列をitemに代入する ということである。 六、七行目はもしもitemがqならばbreakで終らせるとい うことである。 八行目はifの終りである。 九行目はto.iは小数点を切り捨てるということである。 小数点切り捨てでitemをsumに代入する。 十行目は文字を表示する。%dは整数を表示し、きれい に見せたい場合は間に数字を加える。 十一行目はwhileの終りである。 十二行目は全ての合計を出す。 c) 何人ですか?(止めたい場合は q を押す):1 合計人数は 1 人です。 何人ですか?(止めたい場合は q を押す):2 合計人数は 2 人です。 何人ですか?(止めたい場合は q を押す):3 合計人数は 6 人です。 何人ですか?(止めたい場合は q を押す):4 合計人数は 24 人です。 何人ですか?(止めたい場合は q を押す):q 合計人数は 24 人になりました。 (考察) このプログラムのやり方だと一回一回sum= xでxの部分を変えなければいけないので多少 手間がかかると思った。to iを使わなければ 1.05を掛けて消費税の計算が出来ると思った。 2.(感想) 講義の中で%dが整数の表示をするものだと知った。保存 をちゃんとやっておかないとせっかくのプログラムが台無 しになってしまうと思った。 *=とだけ打ち込めば簡単に掛け算が出来ると思ったが 実際はsum=0のところに数字を代入しなければいけなか った。何度やっても答えが0になるので本当に難しかった。 実行してみて始めてsum=0の存在に気付かされた。プログ ラムの実行には映らないものだがとても大事な部分だと 思った。