IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Латинский Квадрат
tricker
сообщение 7.11.2003 12:05
Сообщение #1


Гость






Люди помогите !!!
Мне срочно до завтра необходимо написать программу «Латинский квадрат». Суть в том что если Вы вводите число 5 то строится матрица  вида

1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4

И так далее, я написал половину программы и у меня строится матрица вида,

1 2 3 4 5
2 3 4 5 1
3 4 5 0 2
4 5 0 0 3
5 0 0 0 4

а дальше не могу написать . Я могу выслать текст программы что бы кто – нибудь дописал мне ее, т.к. я не могу ее доделать.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 7.12.2006 22:41
Сообщение #2


Гость






Я бы сделал так:
const
{ Для проверки }
n = 4;
a: array[1 .. n, 1 .. n] of integer = (
(1, 2, 3, 4),
(2, 3, 4, 1),
(3, 4, 1, 2),
(4, 1, 2, 3)
);

var
value, i, j, s, sum, check: integer;
elems: set of byte;
ok, is_col: boolean;

begin
s := 0;
for i := 1 to n do s := s + i;

ok := true;
for is_col := false to true do begin
i := 1;
while (i <= n) and ok do begin
sum := 0; elems := [];
for j := 1 to n do begin

if is_col then value := a[j, i]
else value := a[i, j];

sum := sum + value;
elems := elems + [value];

end;

ok := ((sum = s) and (elems = [1 .. n]));
inc(i);
end;
end;

if ok then writeln('Yes')
else writeln('No');

end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
tricker   Латинский Квадрат   7.11.2003 12:05
Serega   Re: Латинский Квадрат   7.11.2003 15:39
-=BR@BUS=-   А как сделать, чтобы программа определяла является...   7.12.2006 22:15
volvo   Я бы сделал так: const { Для проверки } n = 4;...   7.12.2006 22:41
-=BR@BUS=-   ВОТ СПАСИБО!!! :good:   7.12.2006 23:27
-=BR@BUS=-   А как сделать без "set of byte" а то мне...   15.12.2006 18:02
Malice   А вот так попробуй: var i,j:integer; b:boolean; be...   15.12.2006 22:53
-=BR@BUS=-   Вот такую матрицу 1 2 3 2 3 1 3 1 2 программа расп...   16.12.2006 0:46
Malice   Может по тому, что это совсем другая матрица, запо...   16.12.2006 1:03
-=BR@BUS=-   Но ведь эта матрица тоже является латинским квадра...   16.12.2006 12:05
volvo   Вот так: const (* n = 4; a: array[1 .. n, 1...   16.12.2006 12:34
-=BR@BUS=-   Вот чё в итоге у меня получилось, но программа все...   21.12.2006 19:05
volvo   Я тебе привел рабочую программу, которая давала пр...   21.12.2006 19:08
-=BR@BUS=-   Мне нужно чтобы матрица вводилась во время выполне...   21.12.2006 19:13
мисс_граффити   не умеешь писать ввод матрицы?   21.12.2006 19:30
volvo   sum := 0; { обнуляем сумму для данной строки...   21.12.2006 19:34
-=BR@BUS=-   :mega_chok: Как всегда => верно volvo   21.12.2006 19:43


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

 



- Текстовая версия 21.06.2025 22:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"