XXXXXXXX C105XXXX XXXXXX XXクラス 1.掛け算をするプログラム multipre.rb について a)作成したプログラム #!/usr/koeki/bin/ruby a=1 while true STDERR.print("掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): ") item = gets.chomp! if item == "q" then break end a *= item.to_i printf(" 結果は %d です。\n", a) end printf("結果は %d になりました。\n", a) b)プログラムの各行の説明 1行目はRubyでプログラムが始まるという意味である。 2行目は a という変数に 1 を代入するという意味である。 (掛け算の場合は 0 にしてしまっては結果がすべて 0 になってしまうため。) 3行目は while-endの間に書かれていることができる間続けよという意味である。 4行目はユーザーに文字を入力させるという意味である。 5行目は読み込んだ文字列を item に代入するという意味である。 6〜8行目は item が q に等しいならば反復をやめよという意味である。 9行目は item を数値に変換し、その際に小数点があれば切り捨てるという意 味である。 10行目は数値を表示させるという意味である。 12行目は数値を表示させるという意味である。 c)プログラムの実行結果 irsv{c105180}% ./multipre.rb [~/Ruby] 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 2 結果は 2 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 4 結果は 8 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 5 結果は 40 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): q 結果は 40 になりました。 irsv{c105180}% ./multipre.rb [~/Ruby] 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 4 結果は 4 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 5 結果は 20 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): 6 結果は 120 です。 掛け算をします。数字を入力して下さい。 (止めたい場合は q を押す): q 結果は 120 になりました。 (考 察) 最初、a が 0 のままで実行してしまい、掛け算ができなかった。 変数が 0 のままでは掛け算が実行できないということがわかった。 (感 想) 今日はレジスターがうまく作れたので良かった。条件文や入力と読み取り、足し 上げについてある程度は理解できた。復習に関しては、while-end文など少し忘 れている部分もあった。少しずつ理解していきたいと思う。