![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
ALR |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 1 Пол: Мужской Репутация: ![]() ![]() ![]() |
В двумерных массивах A[N* N] и В[M *M] рассортировать числа по возрастанию в каждой диагонали, параллельной главной диагонали. Числа на главной диагонали не сортировать.
Моё решение
uses crt;
const n=5; m=4;
var a:array[1..n,1..n] of integer;
b:array[1..m,1..m] of integer;
procedure create;
...
end;
procedure output;
...
end;
procedure sort;
var i, j, T: integer;
count, stage: integer;
begin
for stage := 1 to n - 2 do
begin
count := n - stage;
For i := 1 To count Do
For j := count DownTo i+1 Do
begin
if a[pred(j), pred(j) + stage]>a[j, j + stage] then
begin
T := a[pred(j), pred(j) + stage];
a[pred(j), pred(j) + stage] := a[j, j + stage];
a[j, j + stage] := T;
end;
if a[pred(j) + stage, pred(j)] < a[j + stage, j] then
begin
T := a[pred(j) + stage, pred(j)];
a[pred(j) + stage, pred(j)] := a[j + stage, j];
a[j + stage, j] := T;
end;
end;
end;
end;
begin
...
sort;
...
end.
Проблема в том, что в процедуре sort сортируется только один массив a[] Как написать вызов и саму процедуру, чтоб передать её параметры массива(имя и размер), чтоб ей одной можно было бы сортировать оба массива. |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 11:23 |