Помощь - Поиск - Пользователи - Календарь
Полная версия: Сортировка двумерного массива
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ALR
В двумерных массивах 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[]
Как написать вызов и саму процедуру, чтоб передать её параметры массива(имя и размер), чтоб ей одной можно было бы сортировать оба массива.
volvo
Ты бы ссылку-то на источник давал, а то неровен час, подумают, что ты сам это сделал, а доделать такую мелочь - не можешь... dry.gif
Гость
для передачи масива в процедуру нужно описать тип-масив и дальше пользоваться им:
type mas=array[1..10]of integer;
var a,b:mas;
.....
procedure sort(var c:mas);
.....
begin
sort(a);
sort(b);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.