と宣言すると v は v[1],v[2],v[3] の3つの実数からなる配列となる。
type vector=array[1..3] of real;
var v,w:vector;
と宣言すると v,w は添え字1~3を持つ実数の配列となる。 このとき v と w は型が一致しているので w:=v; という代入が可能である (成分ごとに代入する必要がない)。 この代入は次のような宣言をした場合には不可能になる。
var
v:array[1..3] of real;
w:array[1..3] of real;
整数変数 := seed(整数変数);
と書く。
program sample2; const size=2; type vector=array[1..size] of real; matrix=array[1..size] of vector; var a:matrix; u,v:vector; i,j,k,x:integer; y,z:real; begin x:=seed(wallclock); { 乱数発生ルーチンの初期化 } writeln('A = '); for i:=1 to size do begin for j:=1 to size do begin a[i,j]:=round(5*random(1)); { 整数乱数 } write(a[i,j]:2:0) end; writeln end; writeln; z:=0; for i:=1 to size do begin u[i]:=random(1); { 実数乱数 } z:=z+sqr(u[i]) end; z:=sqrt(z); writeln('u = '); for i:=1 to size do begin u[i]:=u[i]/z; writeln(u[i]:10:5) end; for k:=1 to 20 do begin for i:=1 to size do begin y:=0; for j:=1 to size do y:=y+a[i,j]*u[j]; v[i]:=y end; u:=v; { 同じ型を持つ変数の代入 } z:=0; for i:=1 to size do z:=z+sqr(u[i]); z:=sqrt(z); writeln('u = '); for i:=1 to size do begin u[i]:=u[i]/z; writeln(u[i]:10:5) end; writeln end end.