n次元正方行列
と
の積
は、
により与えられる。
program matrix(input,output);
const n = 2;
type index = 1..n;
var a, b, c : array[index,index] of real;
i, j, k : index;
s : real;
begin
for i := 1 to n do for j := 1 to n do read(a[i,j]);
readln;
for i := 1 to n do for j := 1 to n do read(b[i,j]);
readln;
for i := 1 to n do
begin
s := 0;
for k := 1 to n do
s := s + a[i,k]*b[k,j];
c[i,j] := s
end;
for i := 1 to n do
begin
for j := 1 to n do read(a[i,j]:8:3); write(' ');
for j := 1 to n do read(b[i,j]:8:3); write(' ');
for j := 1 to n do read(c[i,j]:8:3);
writeln
end
end.
packed array [添字型] of 要素型
メモリ上に詰め込んで格納してくれるかもしれない。 添字付変数は配列と同様。
制限事項(変数引数に関するもの:後述)
var a : array [b..c] of T;
p : packed array [q..r] of T;
i, s : integer;
aのほうが要素が多いとする。
( pack(a,s,p)は、 for i := q to r do p[i] := a[i - q + s] unpack(p,a,s)は、 for i := q to r do a[i - q + s] := p[i]
Pascalでは文字列の型は文字型を要素型とする詰め込み配列(packed array)です。 すなわち、
packed array [1..整数] of charこのような詰込配列型を文字列型と呼びます。
文字列型は、いわゆる「順序型」ではありませんが、関係演算子
= <> < > <= >=は使用できます。順序は辞書式順序です。この点が他の詰込配列とは異なると ころです。