"латинский" квадрат, Паскаль |
Здравствуйте, гость ( Вход | Регистрация )
"латинский" квадрат, Паскаль |
Mar 17 2009, 17:26
Сообщение
#1
|
|
Новичок Группа: Members Сообщений: 12 Регистрация: 11.1.2008 Из: Кугеси Пользователь №: 13,577 |
Построить и вывести на экран "латинский" квадрат - таблицу, состоящую из 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. Подскажите где я ошибся, программа иногда работает, но часто просто виснет =(( -------------------- Я всё могу - тогда, когда не надо!
|
|
|
Текстовая версия | Сейчас: 13th May 2024 - 12:18 |