Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

PAUK-NET.RU - Бесплатный ADSL портал Чувашии _ Прикладное программирование _ "латинский" квадрат

Автор: Smart Mar 17 2009, 17:26

Построить и вывести на экран "латинский" квадрат - таблицу, состоящую из 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)