第3回の課題 レポートのサンプル

氏名: ほほほほほー
学籍番号: c1061708
クラス: C

1.作成したプログラム
#!/usr/koeki/bin/ruby

sum = 1
while true
  STDERR.print "掛けたい数(終了は q): "
  line = gets.chomp
  if line == "q" then
    break
  end
  sum *= line.to_i
  printf("これまで掛け合わせた数は%dです\n", sum)
end
printf("全て掛け合わせた結果は%dです\n", sum)


2.プログラムの実行結果
irsv{c106170}% ./mul.rb                                                [~/Ruby]
掛けたい数(終了は q): 1
これまで掛け合わせた数は1です
掛けたい数(終了は q): 2
これまで掛け合わせた数は2です
掛けたい数(終了は q): 3
これまで掛け合わせた数は6です
掛けたい数(終了は q): 4
これまで掛け合わせた数は24です
掛けたい数(終了は q): q
全て掛け合わせた結果は24です


3.プログラムの各部の説明
・sum = 1
これはsun変数であり、このプログラムでは掛け合わせた答えをいれているもの
である。参考にしたaccum.rbでは「sum = 0」となっていたが、このプログラム
は掛け合わせるプログラムであるため「0」であると答えは何処までも「0」とな
ってしまう。そのため「sum = 1」とし、1×qから始まる式とした。
・while true
whileとはある条件が成り立っている間、その条件を繰り返すという意味を持つ
制御構造である。ここでは「STDERR.print」から12行目の「end」間を繰り返す。
・break
breakは「while/until/for」等の繰り返しの中で使用され、繰り返しを止めると
いう意味を持つ。このプログラムでは上記の「STDERR.print」から12行目の「en
d」間を繰り返しを止め、次に実行を移すために使われている。
・sum *= line.to_i
参考にしたaccum.rbでは「sum += line.to_i」となっており「+=」の加算すると
なっていたので、このプログラムでは乗算の意味のある「*=」という演算子に置
き換えた。

あとは実行した際に言葉の意味がおかしくなるところを変更し完成した。


4.感想
前回のプログラムよりも複雑なものになっていて苦労したが、講義で学んだ制御
構造や演算子と照らし合わせることで理解できた。
内容の意味がわかってくるとプログラミングがより楽しく感じた。

本日の目次