Построить и вывести на экран "латинский" квадрат - таблицу, состоящую из n различных чисел, всех по n раз расположенных так, что в каждой строке и столбце каждое число встречается только один раз.
ВОт мой код:
Код:
Uses Crt;
Const n=10;
Type matrica=array[1..n,1..n] of integer;
Var m:matrica;
i,j,k:integer;
Function Chek(var m:matrica;n,k,i1,j:integer):boolean;
Var i:integer;
BEgin
chek:=true;
For i:=1 to i1 do
If m[i,j]=k then chek:=false;{проверка на встречаемость в столбце}
if m[i1,j]<>0 then chek:=false;{проверка на занятость места елемента}
End;
Begin
ClrScr;
Randomize;
For k:=1 to n do begin
For i:=1 to n do begin
repeat
j:=random(n)+1;
until chek(m,n,k,i,j);
m[i,j]:=k;
end;
End;
For i:=1 to n do
For j:=1 to n do
write(m[i,j]:3);
readln;
End.
Подскажите где я ошибся, программа иногда работает, но часто просто виснет =((
Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)