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