next up previous contents
Next: 4 変数 Up: algorism_out Previous: 2 プログラミング言語の種類と特徴

Subsections


3 Rubyに慣れる

オブジェクト指向の話に入る前に ``Ruby''の記述方法に慣れよう。 例えば、``Hello World !''と、ターミナルに表示させるには、どうするか。

3.1 c言語との比較

c言語で ``Hello World!''を記述するプログラムを書いて実行す る。

プログラムは以下の通り。 emacs などで記入し、コンパイルして実行する。

[nisimiya]$  emacs ex001.c

---------- Program ----------------------
#include <stdio.h>

int main(void);

int main(void)
{
  printf("Hello, world. \n");
}

----------- Program END ------------------
コンパイルして実行します。
[nisimiya]$  gcc ex001.c
もし何もエラーがなければ "a.out" というファイルがあるはずです。 このファイルが実行ファイルです。
[nisimiya]$ ls
a.out  ex001.c
実行してみます。
[nisimiya]$ ./a.out 
Hello, world.
``Hello, world. `` と表示されましたでしょうか。コンパイル時にオプションを指定しなければ、実行ファイル名は、``a.out''となります。ソースプログラムの各行の意味は、以下のようになります。
---------- Program ----------------------
#include <stdio.h>              ==>ここでは詳しい説明は省略。
                                   「必ず必要」とだけ覚える。

int main(void);                

int main(void)                  ==>必ず main関数があります。   
{                                  "{" と "}"で囲われた部分が
                                    main関数の実行の内容です。
  printf("Hello, world! \n");   ==> 画面に文字列を表示させる部分です。
                                    "\n" は改行を意味します。
}

----------- Program END ------------------
また、C言語は各行の区切りに ``;''を書きます。これがないとエラー表示されます。

3.2 Rubyの場合

では、Rubyの場合では、どうなるでしょうか? まず、以下のプログラムを打ち込み、保存します。 たった一行です。
[nisimiya]$ emacs ex001.rb 

---------- Program ----------------------
print "Hello World ! \n"
----------- Program END ------------------
実行は以下の通り。

[nisimiya]$ ruby ex001.rb 
Hello World!

コンパイルも必要ありません。

3.3 練習


3.4 実行権を与えて実行

[nisimiya]$ ruby program.rb
というように、rubyコマンドを利用して実行する方法だけでなく、
[nisimiya]$ ./program.rb
のような、コマンドのごとく実行する方法もある。

この場合は、プログラムの第一行目に ``ruby''の本体の場所を埋め込む。 rubyがどのにあるか調べるのには、 コマンド ``which''を使うとよい。 以下は実行例。

[nisimiya@edison Algorism]$ which ruby
/usr/bin/ruby
プログラムの先頭に
#!/usr/bin/ruby
を書き入れ、
[nisimiya]$ chmod +x program.rb
を実行し、実行権をあたえることにより、 以下に示すように、コマンドのように実行できる。
[nisimiya]$ ./program


3.5 プログラム作成例

教科書p21のプログラムを打ち込んで、各行の動作説明を加える。 ``#''で始まる部分は全てコメントを表す。(但し、先頭の ``#!''はコメントで はない)
$ mule populetaion &

------------------------------- program ここから ----------------
#!/usr/bin/ruby
p = p0 = 100000  
# p,p0に変数 100000 を代入
# 以下のように2行に分けても可。
# p = 100000
# p0 = 100000
y = 0
# 変数の代入。初期値 "0"
while p < 2 * p0
# "while" -- "end"間を条件が満たされるまで実行
  p *= 1.1
# p = p*1.1 と書いたことと同じ。
# この命令が繰り返されるたびにpが1.1倍されていく。
  printf("%3d 年 \t%d人 \n", y+=1, p)
# 書式つきprint文で、 c言語と全く同じ形式。
end
----------------------------- program ここまで ----------------
必ず実行権をあたえることを忘れないように。 (セクション3.4を参照)

3.6 練習/課題

  1. 教科書p21のプログラムを実行し、問題を解け。
  2. 預金金利が2.5%であるとき、100万円預けるとすると、それが預金残高が 200万円を越えるのは、何年後か? 但し、金利はずっと同じであるとする。
  3. 前問のプログラムの各行に、動作説明を加えよ。セクション 3.5の様に書き込むこと。




平成22年12月28日