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

To: ruby-05-10@e.koeki-u.ac.jp
Subject: 05-10 mul.rb
From: c104299@e.koeki-u.ac.jp

氏名:		公益太郎
学籍番号:	c104xxx
クラス:		XX

1.作成したプログラム

----------------------------------------------------------------------
#!/usr/koeki/bin/ruby

mul = 1
while true
  STDERR.print "掛けたい数(終了は q): "
  line = gets.chomp!
  if line == "q" then
    break
  end
  mul *= line.to_i
  printf("これまでの全ての積は %d です\n", mul)
end
printf("全ての積は %d です\n", mul)
----------------------------------------------------------------------

2.プログラムの各部の説明

mul = 1
掛算の元となる数を変数mulとして、最初に1を代入する。
mul変数は小文字で始まるのでローカル変数である。

while true

whileは、次に指定する条件が真である間、対応するendまでをくり返す。
この場合、条件が true なので、永遠にくり返す。

  STDERR.print "掛けたい数(終了は q): "
  画面に「掛けたい数(終了は q): 」と表示する。

  line = gets.chomp!
  getsはキーボードから一行蚊文字列を読みこむ。
  chomp! は文字列の最後に改行文字(\n)があれば削除する。
  改行を取った結果を line 変数に代入する。

  if line == "q" then
  ifは、後に書く条件が真だったら、対応するendまでを実行する。
  読みこんだ結果が "q" と等しかったら end までの部分を実行する。

    break
    whileのループから抜けてwhileの外側の部分(endの先)に実行を移す。

  mul *= line.to_i
  読みこんだ文字列(line)を整数に変換し、mulと掛ける。掛けた結果はふたた
  びmul変数に入る。結果として、mul変数は、読みこんだ数値がどんどん掛けら
  れていく。

  printf("これまでの全ての積は %d です\n", mul)
end
printf("全ての積は %d です\n", mul)

結果となる変数 mul を表示して完了。%d は「10進数」に対応するので、mulを
10進数として表示することになる。


3.実行結果
掛けたい数(終了は q): 2
これまでの全ての積は 2 です
掛けたい数(終了は q): 3
これまでの全ての積は 6 です
掛けたい数(終了は q): 5
これまでの全ての積は 30 です
掛けたい数(終了は q): q
全ての積は 30 です


4.感想
endの数が合っていないことに気付かず苦労した。

本日の目次