PROCEDURE TRANS (N:INTEGER ; A:GYORETSU ; VAR R:GYORETSU ) ; VAR I,J,K : INTEGER ; H : GYORETSU ; L : BOOLEAN ; BEGIN (*TRANS*) FOR I:=1 TO N DO FOR J:=1 TO N DO BEGIN R[I,J]:=A[I,J] ; H[I,J]:=R[I,J] END ; REPEAT L:=TRUE ; I:=1 ; WHILE (I<=N) AND (L) DO BEGIN J:=1 ; WHILE (J<=N) AND (L) DO BEGIN K:=1 ; WHILE (K<=N) AND (L) DO BEGIN IF (R[I,K]=1) AND (R[K,J]=1) THEN R[I,J]:=1 ; IF R[I,J]<>H[I,J] THEN L:=FALSE ; K:=K+1 END ; H[I,J]:=R[I,J] ; J:=J+1 END ; I:=I+1 END ; UNTIL L END ;