計算機は、プログラム(ソフトウェア)により与えられた指示に従い、入力を受け取り、出力を行う。

計算機は機械語プログラムを受け付ける。一方、人間は、(高級)プログラミング言語を用いてプログラムを記述する。

機械語プログラム
電子回路である計算機に理解しやすいように作られている。計算機の種類により、異なる。

プログラミング言語
人間に理解しやすく、書きやすいように作られている。計算機の種類に依存しない。

人間は、プログラミング言語でプログラムを記述し、その後、コンパイラというプログラムで機械語プログラムに変換する。(コンパイル

通常のプログラミングの手順
(1)エディターを用いて、プログラミング言語にしたがってプログラムを記述する。
(2)コンパイラを用いて、プログラムをコンパイルする。
(3)コンパイルの結果、生成された機械語プログラムを実行する。

プログラムを書く上でのポイント:
☆プログラミング言語の文法に従う。
☆正しい手順で処理する。

この講義の目標:
☆Pascalの文法の習得を通して、プログラムを文法を従って書くということを身につける。
☆正しい計算の処理ということを学ぶ。

自然言語(英語、日本語)と人工言語(Pascal)との違い。
☆Pascalの文法には曖昧さがない。
☆Pascalはプログラムを記述することのみを目的とする。Pascalでは小説は書けない。


簡単なプログラム(その1)

「1+1」の結果を画面に表示するプログラム。

文法の説明

つぎに上の簡単な例を変更しつつ複雑なプログラムを見ていこう。


簡単なプログラム(その2)


1000と16の和、差、積、商を表示する。
準備:まず、和差積商の式はおのおの次のように書く。

また、複数の文を実行することを記述したいときは、実行文部に複数の文を書けばよい。
文と文の間にはセミコロンを置く。

以上のことがわかれば、このプログラムは次のように書ける。

空白と改行
「空白はどこにいれてよくてどこにいれるといけないか?」とか「行をどこで分かつのが許されるか?」という疑問をもつかもしれない。これについては後で、厳密に学ぶ。とりあえずは、「空白や行の終わり(改行)は提示した例のように入れる」と覚えておけばよい。

簡単なプログラム(その3)

writeln文:writeln文は一つの文で複数の式の計算結果の値を表示することが可能です。
書き方はカッコとカッコの間に式をならべて、式と式との間にはコンマを書きます。
writeln(式, 式, 式, 式)
このことを使えばもう少しシンプルにその2のプログラムは書けます。

注意 その2とその3のプログラムは数の表示のスタイルに若干違いがあります。その2のプログラムは、和、差、積、商を4行を使って表示しますが、その3のプログラムでは、1行で表示してしまいます。これについて詳しいことは後で説明することになります。


簡単なプログラム(その4)

上のプログラムは、足し算などの計算をしてくれるのですが、どういう数の計算をするのかはプログラムで定められてしまっていました。別の数を計算したいときにはプログラムを書き直さないといけません。これでは不便です。キーボードから数字を入力してもらい、その数字に基づいて計算するプログラムを次に考えてみます。

手始めに、数字を一つ読み取り、それを二倍して画面に出力するプログラムを示します。

新しくでてきた事柄について順に説明していきます。

変数 その4のプログラムがその1からその3までのプログラムと大きく異なるのは「変数」というものを使っているところです。ここでいう変数は数学でいうところの変数とは、その使い方が若干違いがありますので注意してください。Pascalでいうところの変数とは、数値などのデータを格納するための「箱」のようなものであると考えてください。

そして、プログラム中ではその箱には名前がついています。「n」という名前のついた変数を図示すると次のようになります。

上のプログラムでは、変数を整数をキーボードからの入力として受け入れるための受け入れ場所として使用します。変数がどのようにプログラムの中で使われているのかを順を追って説明します。

変数宣言部 上のプログラムでは、「var n : integer;」の部分が相当します。これは、整数(integer)のデータを一つ格納するための箱を一つ使用することをあらかじめ約束しています。実行文部で使用する変数はすべて変数宣言部で宣言(あらかじめ約束)しなければならないことになってます。このプログラムでは、nという名前の整数変数を一つだけ使用することを宣言しているわけです。

さて、変数宣言部のintegerは、整数型(整数の型)をあらわしてます。型とは、データの種類のことです。整数型の他にもさまざまな型がPascalにはありますが、とりあえずここでは、integer型だけを紹介しておくにとどめます。

read文 「read(n)」という部分がread文です。read文とは、
read(変数)
という形をした文で、「キーボードから打ち込んだデータを変数に格納せよ!」ということを意味しています。上の例だと
read(n)
という形ですから、「人間にキーボードから整数を打ち込んでもらって、その数値を整数変数nに格納せよ!」ということを意味する文です。

式の中で用いる変数 前のプログラムの例で説明した式は整数と+、*、/、divから作られていました。今説明している変数も式の中で使用することができます。式の中で変数を用いるとどういう意味になるのでしょうか。上のプログラムでは、writeln文中に「n*2」という変数を含む式があります。この場合、「n」という名前を持つ変数の中に入っている整数値を取り出してきて、その整数値と整数2との積を計算してその値を求め、その値が式の計算結果となるわけです。すなわち、式の中に変数があらわれたときには、「…という名前の変数から値を取り出してきて、その値を使って…」と考えればよいわけです。

こういうわけで、「writeln(n*2)」はnという名前の変数から整数値を取り出してきて、その値と整数2との積を計算して、その計算結果を画面に表示する。」ということを意味してます。

簡単なプログラム(その5)
前に取り上げた「簡単なプログラム(その2)」は、1000と16との和、差、積、商を計算して画面に出力するものでした。ここでは、1000、16、といったあらかじめ決められた整数の和、差、積、商ではなくて、キーボードから入力された2つの整数の間の和、差、積、商を計算するプログラムを考えてみましょう。

このプログラムを作成する上で知っておかなければならないこととしては次の事柄があるでしょう。

複数の変数を宣言する変数宣言部 その4のプログラムでは扱う変数は一つだけでしたが、その5のプログラムでは、2つの変数をつかわざるをえません。従って、宣言すべき変数も2個となるわけです。mとnとの二つの整数型の変数をプログラムで使うときには次のように変数宣言部を書きます。

ちなみに三つの整数型の変数lとmとnを使うときには

と書きます。

以上のことを踏まえて、その2のプログラムとその4のプログラムを参考にすれば、このプログラムも簡単に書けます。

簡単なプログラム(その6)

その3のプログラムでは、writeln文の中に複数の式を書くことができると説明しましたが、read文においても複数の変数を指定することができます。

「read(m,n);」と書く時と「read(m);read(n);」と書く時とは、まったく同一の動作をするということになってます。このことをふまえると、その5のプログラムは次のように書くことができます。