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

氏名:		ikeike
学籍番号:	c10700x
クラス:		プログラミングクラスD


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、プログラム実行結果

掛けたい数(終了はq):5
これまでの積は5です
掛けたい数(終了はq):6
これまでの積は30です
掛けたい数(終了はq):3
これまでの積は90です
掛けたい数(終了はq):75
これまでの積は6750です
掛けたい数(終了はq):34
これまでの積は229500です
掛けたい数(終了はq):128
これまでの積は29376000です
掛けたい数(終了はq):q
以上を掛け合わせた結果は29376000です


3、プログラム各部の説明

[sum=1]
掛け算の初めの値が0だと永遠に結果が0のままなので予め"1×掛けたい数"のか
たちにしておく。
sumの変数を1とする。

[while true]
正しい場合繰り返せ

[STDERR.print "掛けたい数(終了はq):]
 STDERに対して "掛けたい数(終了はq):"をprintしろ

[line=gets.chop]
lineの部分にキーボードからのデータを読み込め

[ if line=="q"then
    break          ]
もしline=="q"(line:キーボードに撃ち込んだデータと"q"が等しいか)が成立す
るならばwhile true(正しければ繰り返せ)の命令を中止しろ
→qと入力されたらループを中止しろ

[end]
ifに対してのend

[sum*=line.to_i]
sum(=1)掛けることのlineを整数に直した値

[ printf("これまでの積は%dです\n",sum)]
"これまでの積は%d(=sumの結果)です\n(=改行)"をその桁数のままprintしろ
(%dの前に数字がつけばその桁数ぶん揃えて表示)

[end]
whil(繰り返せ)に対してのend

[printf("以上を掛け合わせた結果は%dです\n",sum)]
"以上を掛け合わせた結果は%d(=sumの結果)です\n"をその桁数のままprintしろ
(%dの前に数字がつけばその桁数ぶん揃えて表示)


4、感想
ぱっと見ただけだと何がどんな意味で使われているのか分からないけど、
ひとつひとつの意味を解読しながら見ると、
どの文字列、記号がどう作用して結果に繋がるのかが理解できた。
数学の計算過程みたいだと思った。


5、プログラム添付

本日の目次