前回の復習
簡単なプログラム(その1〜その6)


総合校舎A号館計算機システムでのコンパイルと実行

総合校舎A号館でのPascalプログラムのコンパイルと実行の例をみてみましょう。基本的には普遍科目「情報処理」のテキスト「キャンパス情報リテラシー」の120ページと同じです。

  1. まず、エディターを用いてPascalのプログラムのファイル(ソースプログラムと呼ばれる)を作成します。ただし、ファイル名は「kantan1.p」とか「daikei.p」というように、ピリオドと小文字のピーで終わるファイル名にしなければなりません。。
    1. sino% mule kantan1.p
  2. 次に、Pascalコンパイラpcを用いてコンパイルします。コンパイラのコマンド名pcに続いて、空白を1つ以上おき、そして、Pascalのプログラムファイルのピリオドより前の部分を(コマンドの引数として)書きます。
    1. sino% pc kantan1

    プログラムに間違いがあれば、その間違いを指摘するメッセージが出力されます。間違いがないときには機械語プログラムのファイル(実行可能ファイル)が生成されます。

  3. 実行可能ファイルを実行する。
    1. sino% kantan1

    そうすると、プログラムが実行されます。kantan1.pが「簡単なプログラム(その1)」だったとすると、次のような結果が画面に出力されてこのプログラムの実行は終了します。

               2
      sino%

教科書のプログラム

教科書の3ページに次のようなプログラムが載っている。

このプログラムは、その6のプログラムkantan6とまったく同じ動作をする。二つのプログラムの違いは、
という形の文がいくつか使われているということである。これについて説明しよう。この形の文は代入文と呼ばれる文である。上のプログラムであれば、

がそれにあたる。これは、左辺で与えられている変数名がsという変数に、右辺の式の値を入れるという意味をもつ。この文が実行される以前にこの変数に値が入っていた場合にはその値は捨てられてしまう。

代入文の意味を考えると、プログラムarithmeticとプログラムkantan6とはまったく同じ動作をするプログラムであることがわかる。違いは、和、差、積、商の計算結果をいったん変数に保存しておくかどうかという点である。

ちなみに、和、差、積、商の計算結果は、それぞれs、d、p、qという名前の変数に保存される。これらの変数の名前の由来は、sum、difference、power、quotientであると推測される。

以上で、教科書の2ページの例題1.1の解説が終わった。次に、例題1.2のプログラムを説明するために簡単なプログラムをいくつも紹介しよう。

簡単なプログラム(その7)
文字列の出力

以前に、整数をキーボードから入力し、その整数を2倍して、計算結果を画面に表示するというプログラムを紹介した。

program kantan4(input,output);
var n : integer;
begin
    read(n);
    writeln(n*2)
end.
このプログラムの実行例をみてみましょう。

これでも立派なプログラムですが、実行後、整数が入力されるまで、「無表情」です。整数を入力する前に

とか表示してくれたり、計算結果を入力したあとに、

など、表示してくれるとより一層使い良いプログラムになります。そのためには、次のようにプログラムを変更すればよいのです。

これを実行すると次のようになる。

説明が必要なのは、

とか

という部分でしょう。writeln文の引数(小括弧で挟まれた部分)は式というものがおかれると説明しました。今までの例では、整数型の式だけを紹介していただけですが、今回登場した、

とか

というものも式の一種で、文字列と呼ばれるものです。これは、(英)文章を表示したいときに、文字の列自身をデータとして扱うためのもので、文字列は、データとしての文字の列です。

writeln文は、引数に文字列があたえられたときにはその文字列のあらわす文字の列を画面に表示します。

(注意)

も両方とも実行されると、画面に「16」と表示します。しかし、前者が、整数式16の計算結果である整数値(もちろん16)を表示しているのに対して、後者は、文字列'16'、すなわち、1という文字と6という文字が順に並んだ列のデータを表示しているわけで、まったくの別物を表示しているのです。

簡単なプログラム(その8)
条件文(if文)

プログラムは計算の手順を記述したものです。計算の手順を記述する単位が文です。今まで紹介してきた文には、read文やwriteln文がありました。これらの文は。もっとも基本的な文の一つです。このような基本的なものの他に、いくつかの文から、より複雑な文を構成ようなものもあります。そのような文としてまず最初に紹介するのが、if文(条件文)です。次に、if文を使ったプログラムの例を紹介します。

次は、整数を二個、キーボードより入力してもらい、そのうちの大きい整数を画面に出力するというプログラムです。

実行例は次のようになります。

上記のプログラムで説明されていない部分は、

です。このような文はif文と呼ばれ、一般形は

という形をしています。上のプログラムのif文の意味は、

というものです。ここで、m>nは実は式です。もちろん、整数値を計算結果として持つような式ではなく、論理値(ブール値、bool値)を値としてもちます。論理値というのは、

という二つの値のいずれかです。論理値の型(データの種類)を論理型と呼び、変数宣言の時などには

と書きあらわします。

「m < n」というのは、論理型の式であり、論理値を計算結果とします。変数名がmである変数の整数値が、変数名がnである変数の整数値よりも本当に小さいときには、式の値が「真」となり、そうでないときには、「偽」となります。

論理型の式で二つの整数を比較するようなものはこの他に代表的なものとして、

問題

上で紹介した、さまざまな整数比較の式を使用することにより、kantan8のプログラムのif文を実行結果が変わらないように書き換えることができる。いろいろ書き換えてみよ。

Pascalの文法:Pascalの文字セット

Pascalのプログラムで使用される文字は次のとおりである。

これ以外の文字(#や$)は、あとで説明する文字列の中で使うことができる。漢字、ひらがななどについては、コンパイラによって使えたり使えなかったりする。