問題を解くプログラム

つぎのような問題を考えよう。

これを解くプログラムをRubyで作ると以下のようになる。

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

p=p0=100000
y=0
while p < 2*p0
  p *= 1.1
  printf("%3d年\t%d人\n", y+=1, p)
end

このプログラムを population.rb という名前 で作成し、実際に実行してみよ。

手順

  1. ファイルを開く

    C-x C-f (find-file)して population.rb を 開く。ファイルを作成するディレクトリに注意する。

  2. 保存する

    C-x C-s

    こまめに保存すること!

  3. 実行する

    Terminalに移り、(必要ならディレクトリもcdで移り)

    chmod +x population.rb
    ./population.rb
    

    とする。chmodは、一つのプログラムに対して最初の 一回だけやれば良い。

実行結果とプログラムを見比べ、プログラムの各部分がどんな意味を 持つのかを自分なりに想像してみよ。

インデント

上記のプログラムでは、「while...」の行と、 その次の「p *= 1.1」では書き始めの位置が違っている。

行の最初の文字を書く桁位置を変えることをインデント(字下げ)と いい、プログラミングや構造的文書を書く際には非常に重要な意味を持つ。 EmacsでRubyプログラムを作成する場合、1行入力し終えたときに [Tab]キーを押すと自動的に適切なインデントに揃えてくれる。

今後、プログラムを作成するときには、各行の入力や修正が完了したら 必ず[TAB]キーで インデントを揃えよう。そうすることでプログラムの入力間違いが軽減できる。


本日の目次