PASCAL 講座(塩田) 第4回
- 配列の宣言の基本形は
var 変数名 : array[m..n] of 型名;
- 例えば
var x:array[-3..3] of real;
と宣言すると x は x[-3],x[-2],..., x[3] の7つの実数からなる配列となる。
- 2次元配列の宣言は次のどちらでも良い:
var 変数名 : array[m..n] of array[p..q] of 型名;
var 変数名 : array[m..n,p..q] of 型名;
- 2次元配列の (i,j)-成分は x[i][j] のように書いても良いし、 x[i,j] のように書いても良い。
- 3次元以上の多次元配列についても同様
- 魔方陣を作るサンプルプログラム s4_1.p
( C 言語での同等品 t4_1.c )
- 複数のデータをひとまとめにしたデータをレコードと言い、
その宣言の一般形は、
record
フィールド名 : 型 ;
:
フィールド名 : 型
end;
- C 言語の struct に該当する。
- レコード変数の各要素は <レコード変数名>.<フィールド名> のように表す。
- with 文を用いると <レコード変数名>. の部分を省略できる。
- サンプルプログラム s4_2.p
( C 言語での同等品 t4_2.c )
- PASCAL の record ( C 言語の struct ) は、
「変数に割り当てるメモリの、先頭から何ビット目から何ビット目までを何々と呼ぶ」
ということを宣言している。
- 配列、レコードなどの新しいデータ型を作ったときに、
type 文を使ってその型に型名を付けると次のようなことができる:
- その型の変数への代入文
- その型を値に持つ関数の定義
このことで飛躍的にプログラミングがし易くなる。
- C 言語の typedef に該当する。
- type 文と文字列処理のサンプルプログラム s4_3.p
- type 文 ( C 言語の typedef ) はひとまとめに扱うビット数を宣言している、
と考えると分かり易い。
type 宣言すると代入ができるようになるのは、
割り当てられたメモリの先頭からそのビット数だけ丸ごとコピーすれば良いからである。
- レコードの中にタグを立てて、
そのタグの値によってレコード内の構成を幾通りか変化させる
「可変部付きレコード」というものもある。
戻る