PASCAL 講座(塩田) 第6回
- #include 命令によって、他のソースプログラムを取り込んで使うことができる。
- 例えば第4回の複素数計算プログラムを
に分割してみる。この2つのファイルをダウンロードし
(第4回が済むまで非公開)、
s6_1.p をコンパイルすると s4_4.p と同じ動作をする実行ファイルができる。
- これは次の意味で重要である:
ひとつの同じ関数を、異なるメインプログラムで共通に用いる、という状況がよくある。
このとき、関数部分だけを独立したファイルに作成して(すなわちライブラリー化して)おいてインクルードして用いる
と、以下のようなメリットがある。
- 関数部分に規格変更・バグ修正を行う場合、
いちいち全てのメインプログラムを修正する必要がない。
- ひとつひとつのソースプログラムも、全体としても、
ファイル容量が軽減される。
-
ファイル変数の宣言は
var ファイル変数名 : file of 型名 ;
-
新規ファイルへの書き込み用オープン命令は
rewrite(ファイル変数名,ファイル名);
-
既存ファイルの読み出し用オープン命令は
reset(ファイル変数名,ファイル名);
-
ファイルのクローズ命令は
close(ファイル変数名);
-
ファイルへのデータ書き込み命令は
write(ファイル変数名,変数名);
-
ファイルからのデータ読み出し命令は
read(ファイル変数名,変数名);
-
読み出し用ファイルが終わりに達したかどうかは関数
eof(ファイル変数名) ( 値は論理値 )
で調べる。
- 入出力には get, put という命令もある。( テキスト pp.102-104 )
- 素数表のバイナリファイル primetable を作成するサンプルプログラム s6_2.p
- primetable から素数を呼び出すサンプルプログラム s6_3.p
- ファイルの宣言は
var ファイル変数名 : text;
- ファイルのオープン・クローズ命令、eof はバイナリファイルに同じ。
- ファイルへのデータ書き込み命令は
write(ファイル変数名,変数名:書式, … );
または
writeln(上と同様);
で、画面出力と同じ要領でファイルに書き込まれる。
- ファイルからのデータ読み出し命令は
read(ファイル変数名,変数名);
または
readln(上と同様);
で、readln の場合はその行に残ったデータは読み飛ばされる。
- 行末に達したかどうか調べる関数 eoln や
改ページ命令 page もある。
- 素数表のテキストファイル primetable.txt を作成するサンプルプログラム s6_4.p
- primetable.txt から素数を呼び出すサンプルプログラム s6_5.p
- 第5回の s5_2.p (アルファベットの ASCII コードを表示するプログラム)を改造して、
出力先を ascii.txt というテキストファイルにするプログラム s6_6.p を作成せよ。
- primetable.txt から素数を呼び出して、
( 6 * ( 素数の逆数の2乗和 ) ) の平方根
を計算するプログラム s6_7.p を作成せよ。
戻る