code 36403; procedure ROWPERM(PERM,LOW,UPP,I,MAT);value LOW,UPP,I; integer LOW,UPP,I;integer array PERM;real array MAT; begin integer T,J,K;real A;boolean array TODO[LOW:UPP]; for T:=LOW step 1 until UPP do TODO[T]:=true; for T:=LOW step 1 until UPP do begin if TODO[T] then begin K:=T;A:=MAT[I,K]; for J:=PERM[K] while J^=T do begin MAT[I,K]:=MAT[I,J];TODO[K]:=false;K:=J end;MAT[I,K]:=A;TODO[K]:=false end CYCLE; end FOR T; end ROWPERM; eop