Pascalのプログラムの構造

ここでは、前の資料で示したのプログラムの解説をします。 また、文法事項に関しては、ISOなどの一般的な規格に従って説明します。

Pascalのプログラム

Pascalのプログラムは、基本的には次のような3つの部分から成り立ってます。

tex2html_wrap65

実行文部の後にはピリオドがあることに注意してください。

プログラム頭部

プログラム頭部は次のように書きます。

        program プログラム名(input,output);

(例1)   program daikei(input,output);
(例2)   program houteishiki(input,output);

プログラム名は、プログラムの名前です。どんな名前をつけてもプログ ラムの動作には影響しませんが、わかりやすい名前をつけましょう。

名前

名前で許されるのは、一文字目が英字で、それ以降が英文字もしくは数字であ るような文字の並びです。

(例) x y z x1 x2 z3 hankei nagasa kakudo
という名前は、二文字目が英数字ではないので許されません。 (Cray Pascalではなどが許されますが、一般的ではないので使わ ないようにしましょう!) 名前の長さは特に制限はありませんgif

変数宣言部

変数とは、整数、実数、文字列などのデータを保存するための容器で、 名前がつけられています。計算機の記憶領域(メモリ)を抽象化した概念です。

Pascalでは、プログラムの最初でどのような変数を使用するのか、あらかじめ ことわっておかなければなりません。それが変数宣言部です。変数宣言 部では、使用する変数の名前とデータの種類(型)を書きます。

には、整数型(型名 )、実数型(型名 )を 初めとして、いろいろあります。書き方は次のとおりです。

var 変数名,変数名, ... , 変数名 : 型名 ;
    変数名,変数名, ... , 変数名 : 型名 ;
    ...
    変数名,変数名, ... , 変数名 : 型名 ;
これは、コロンの左側の変数がコロンの右側の型であることを意味しています。 変数名についての規則は、プログラム名で説明した「名前」の規則と同じです。

プログラム名、変数名、型名は、ある一定の規則のもとに重複することが許さ れます。しかし、この規則をこの段階で説明するのは大変ですから、説明しま せん。とりあえず、重複しないようにプログラムを書いてください。

プログラムdaikeiのように、名前がおのおの , , , であるような実数型の変数を4つ宣言するときには、次のように書くわけです。

var a,b,h,s : real;
また、次のように変数一個一個に型を書いても構いません。
var a : real;
    b : real;
    h : real;
    s : real;
ただ、長ったらしくなってしまいます。

2つの整数型の変数i,jを宣言する場合、次のように書くことになります。

var i,j : integer;

例題

4つの実数型変数 , , , と2つの整数型変数 , を宣言する変数宣言部はどのように書けばよいのでしょうか?

実行文部

実行文部は、

begin 文 ; 文 ; ... ; 文 end
という形です。文というものが、セミコロンで区切られて1個以上並んだもの です。とは、「整数を出力せよ」とか「変数に…という値を記憶せよ」 というような、計算機に対する命令です。

プログラムの実行文部は次の5つの文から成り立っています。5 つの文は、,, の三 種類に分けられます。これら三種類について解説していきます。

write文

    write(式) または write(式, 式, ... , 式)
と書きます。(式を何個か書いて間にコンマを書く)これは、小括弧のなかの式 を左から順に計算して、その計算結果を画面に出力せよ!ということを意味す る文です。

'h = 'も「文字列」という式の一種で、文字の並んだものを表現するデータで す。write('h =')は「h =」という3個の文字からなる文字列を画面に出力しま す。

writeln文

    writeln(式) または  writeln(式, 式, ... , 式)
と書きます。その意味もwrite文とほとんど同じで、違いは、最後に改行を出 力するということです。

read文

    read(変数) または  read(変数,変数, ... , 変数)
と書きます。これは、「小括弧の中の変数にキーボードから値を(端末の前の 人間から)入力してもらえ!」という意味です。

整数と実数

数学では「整数全体からなる集合は実数全体からなる集合の部分集合である」 と習いました。しかし、Pascalをはじめとする多くのプログラミング言語では、 実数と整数は別物として扱われます。

また、計算機で扱う実数と数学で扱う実数はギャップがあります。計算機で扱 うことのできる実数は、いわゆる「小数」で、その精度も有限です。従って、 tex2html_wrap_inline67 のような無理数はもちろん表現することができません。

Pascalでの整数の書き方は、

    〈符号〉〈数字の列〉
    ただし、〈符号〉は、+ または - または なにも書かない
です。例えば、,,というふうに書けばいい のです。一方、実数の書き方は、
 〈符号〉〈数字の列〉.〈数字の列〉
 〈符号〉〈数字の列〉e〈符号〉〈数字の列〉
 〈符号〉〈数字の列〉.〈数字の列〉e〈符号〉〈数字の列〉
というふうに書きます。 は実数の二十、は負の実数の二十です。 ,はそれぞれ、 実数の tex2html_wrap_inline60 , 実数の tex2html_wrap_inline62 です。

課題

Pascalで、 (2e-10+2e+10)-2e+102e-10+(2e+10-2e+10)という 二つの実数式の計算結果を表示するプログラムを作成し、その結果を 求めなさい。(ヒント:二つの計算結果は、ことなる結果になるはずです)

提出期限は余裕をもって6月27日とします。レポートは、電子メール (Subjectはkadai3)にて提出のこと。提出先は

nisizaki@students.chiba-u.ac.jp

プログラムや出力例は別々に送ったりしないで、一つの文書にまとめてメール にしてください。また、このプログラムから考察することや、何かミスでハマっ てしまった経験などがあれば、一緒に付けて下さい。

注意

ここのコンパイラはプログラムファイルの最後は改行で終わらないとgif エラーが発生するようです。気を付けてください。

...名前の長さは特に制限はありません
今回使っているコンパイラでは一行の長さの制限が140文字以内で、名前は二行に わたって書けません。従って一つの名前の長さは最大限140文字ということに なります。
...write文
便宜的な呼び方で、厳密には、write手続きの手続き呼び出 し文と呼ばるべきものです。writeln文やread文というも同じで す。
...ここのコンパイラはプログラムファイルの最後は改行で終わらないと
いいかえると、最後の行が文字も空白も何もないということ。
 



Mon Jun 16 01:16:36 JST 1997