IPB

Здравствуйте, гость ( Вход | Регистрация )

 
ОтветитьСоздать новую тему
> "латинский" квадрат, Паскаль
Smart
сообщение 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.
Подскажите где я ошибся, программа иногда работает, но часто просто виснет =((


--------------------
Я всё могу - тогда, когда не надо!
Вернуться к началу страницы
 
+Цитировать сообщение

ОтветитьСоздать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29th March 2024 - 17:43