コンピュータリテラシー演習のページへ
Rubyによるはじめてのプログラミング

プログラムとは何か?

皆さんは、プログラムという言葉をコンピュータとは関係なくても一度は聞いたことがあると思います。

例えば、入学式のプログラム。例えば、1.開会宣言 2.入学許可 3. 学長告辞 ... といったぐあいです。

また、テレビの番組表をプログラムと言ったりします。 例えば、7時〜8時はニュース、8時〜9時はドラマといったぐあいです。

これらのプログラムとは、「物事の順番(手順)」が書かれたものと言えます。 コンピュータのプログラムも、 「コンピュータに何をやらせるかを順番に書いたもの」と言えます。

物事には順番があるのが普通です。例えば、さきほどの入学式の場合、閉会を宣言 してから、学長が告辞を述べることはありません。閉会は必ず式の最後です。 コンピュータのプログラムも順番が大事です。うまく動いていたものが順番を変えると おかしくなることが多々あります。ただし、全てのものに決まった順番があるわけではなく、例えば、靴下をはく時に右足から先にはいても左足から先にはいても大丈夫なように、 順番が問われないものもあります。

コンピュータのプログラムで次に覚えてほしいことは、 「プログラムでできることは一度に1つのことだけである」ということです。 つまり、一度に複数のことはできません。例えば、 「鉛筆で絵を描きながら友達としゃべる」といったことです。この場合、鉛筆で絵を描いて、 描き終ってから、友達としゃべる、というようなことしかできません。

[補足] 実は、「一度に1つのことしかできない」というのは間違いで、 あたかも一度に複数の処理を行っているかのように振舞う並行処理(concurrent processing)や 本当に一度に複数の処理を行なう並列処理(parallel processing)というものが あります。しかし、比較的高度なプログラミングでの話なので、当面は、 「一度に1つのことしかできない」と覚えておいて問題ないでしょう。

Rubyなどのプログラミング言語では、1行に1つの処理を書いて、それを順番に書くのが普通です。この1つの処理のことを通常、1つのといいます。

print1.rb : 3つのprint文
print "a"
print "b"
print "c"

この例では、最初にprint "a"文を実行し、 次にprint "b"文を、 最後にprint "c"文を実行します。

また、2行分のプログラムを1行で書きたい場合は、間に ; を入れて書きます。

print "a"; print "b"
print "c"

さらに、3行分を1行で書きたい場合は、また ; を入れましょう。

print "a"; print "b"; print "c"

このように、プログラムは原則として「上から下へ」、一行中では「左から右へ」 順番に実行されていきます。

※ ; を使って一行にたくさんの命令を書くことはなるべく避けましょう。多くの場合読みづらくなります。; を使う場合は、そうしたほうが読みやすく、理解しやすくなる場合に限ってください。

以上のように、単に順番にプログラムを実行するだけでは、あまり複雑なことはできないと心配になるかもしれません。しかし心配無用です。 他に、ある条件の時だけ実行する「条件判断」、同じ処理を繰り返す「反復」、 ある処理を一つにまとめて扱う「手続き」、 データとそれに関係する手続きをまとめて扱う「オブジェクト」といった便利な仕組みにより、 複雑な処理を見通し良くプログラムとして書くことができます。 これらの仕組みは、のちほど出てきますので、順に覚えていってください。


東京情報大学情報システム学科
大見 嘉弘(Yoshihiro OHMI)
<ohmi@rsch.tuis.ac.jp>