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

Subject: #03 mul.rb
To: ruby-04-25@e.koeki-u.ac.jp
Date: Sun, 27 Apr 2014 15:27:30 +0900 (JST)
X-Mailer: Mew version 6.3 on Emacs 23.3 / Mule 6.0 (HANACHIRUSATO)

氏名:          flatk
学籍番号:      c113112a
クラス:        7


レポート

1.作成したプログラム


#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

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): 3
これまでの合計は 3 です
掛けたい数(終了は q): 8
これまでの合計は 24 です
掛けたい数(終了は q): 9
これまでの合計は 216 です
掛けたい数(終了は q): 333
これまでの合計は 71928 です
掛けたい数(終了は q): 98
これまでの合計は 7048944 です
掛けたい数(終了は q): 388
これまでの合計は 2734990272 です
掛けたい数(終了は q): q
合計は 2734990272 です



3.プログラムの各部の説明
プログラム各部を上のほうから順に説明する。

sum = 1

 sumは、変数である。変数とは、値(数値や文字列)を入れる為の「箱」のような
役割をする。変数の名前は好きな名前で設定することが出来る。(ただし始めの
文字は英小文字でなければならない。また、使用できる文字は英数字かアンダー
スコア(_)のみである。) 「 = 1」は、sum変数に1を代入するという意味がある。代入は「=」で表す。
 変数には、数値や文字列、配列など、どんな値も入れてよい。その場合、数値
 はそのままで良いが、文字列はダブルクオート(" ")か、シングルクオート
(' ')で囲む。(例: x = 33,  sum = "Good By")


while true
 
 whileは、制御構造という。プログラムは通常、上から下に実行されるのだが、
 その流れを変えることが出来るのが、制御構造である。また、制御構造には条
 件式が必要で、条件式には真偽値を入力しなければならない。ここでの条件式
 は、true の部分である。
 ここでのwhileは、対応するendまでの内容を何度も繰り返し行う。(このことを
 ループという。)
 

STDERR.print"掛けたい数(終了は"q")
 
 STDERRとは、標準エラー出力のことで 「.print...("q")」の部分をプログラム
 上で、エラーメッセージとして表示することができる。


line = gets.chomp

 このプログラムは、キーボードから入力された値を読み込み、line変数に代入
 することができる。


if  line == "q" then

 ifは、whileと同じ、制御構造の1つである。このifは、「もし〜された場合...」
 のように、条件式に応じて、場合分けをしたいときに使用する。ここでは「も
 し"q"が入力されたら」の意味である。
 また「==」は、演算の記号の1つ(論理演算子)で、左辺と右辺が等しいという意
 味がある。
 
break
 
 breakは、プログラム中のループを中止し、終了させることができる。ここでは、
 whileのループを中止させることができる。 breakが処理されるのは、"q"を入
 力したときである。

end
 
 ここでのendは、ifのプログラムを終了させるものである。


sum *= line.to_i

 このプログラムは、lineで入力された値をsum変数に掛けるもので、これまで入
 力した値の合計を示す。
 ここでの「*=」は、代入演算というものである。(例:X *= 3の場合、Xが3倍にな
 る)

printf("これまでの合計は %d です\n", sum)
 
 printfは、( )の内容を表示するプログラムである。このprintfはメソッドとい
 い、あらかじめ決められた処理を行う。また、( )の内容の部分を、引数という。
 
end
 
 このendは、whileに対するものであり、while〜endまでの内容を中止しない限
 り、ループする。

printf("合計は %d です\n", sum)

 このプログラムは、プログラムを終了したあと、「合計は〜です。」を表示す
 るための結果を示すものである。
 上記にもあったが、「%d」というのは、これまでの数の合計を示している。プ
 ログラム実行したときには「%d」は表示されない変わりに、合計値を表してい
 る。






4.感想

プログラムを実行することは、まだ簡単であるが、プログラム各部を説明にする
のはとても難しく、疲れるものだった。実行したことを言葉にして分かりやすく
伝えるためにはこれからも訓練が必要だと感じた。
でも諦めず今後も頑張りたい。

本日の目次