行列の積

n次元正方行列 tex2html_wrap_inline34tex2html_wrap_inline36 の積

displaymath28

は、

displaymath29

により与えられる。

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 要素型

メモリ上に詰め込んで格納してくれるかもしれない。 添字付変数は配列と同様。

制限事項(変数引数に関するもの:後述)

既定手続きpackとunpack

var a : array [b..c] of T;
    p : packed array [q..r] of T;
    i, s : integer;
aのほうが要素が多いとする。 ( tex2html_wrap_inline38 ) このとき、
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
このような詰込配列型を文字列型と呼びます。

文字列型は、いわゆる「順序型」ではありませんが、関係演算子

=  <>  <  >  <=  >=
は使用できます。順序は辞書式順序です。この点が他の詰込配列とは異なると ころです。




Tue Jul 15 23:26:34 JST 1997