Здравствуйте. Получил задание составить программу реализующую обработку двумерного числового произвольного массива тремя способами сортировки (пузырька, вставкой, выбора). Честно признаюсь что дуб я в этом деле, а вникнуть и решить самому времени уже не хватает. Кое-что напридумывал для начала (правда не знаю будет ли это работать). Очень нужно три процедуры сортировки двумерного массива, чтоб хоть что-то слепить. Одну процедуру с сортировкой вставил, но не знаю правильна она или нет.
Вот начало моей программы: program zadanie_proba_zadolbala;
uses crt;
const p=10;
type mas=array[1..p, 1..p] of integer;
var massiv: mas;
ch: char;
procedure InsertMas(var mass: mas);
var i,j,n,s: integer;
begin
writeln('Введите колисчества строк '); readln(n);
writeln('Введите количество столбцов '); readln(s);
for i:=1 to n do
for j:=1 to s do
begin
write('Введите [',i,',',j,']-ый элемент массива: '); readln(mass[i,j]);
end;
end;
procedure PrintMas(mass: mas);
var i,j,n,s:integer;
begin
for i:=1 to n do
for j:=1 to s do
begin
gotoxy(j*5+35,i);
writeln(mass[i,j]);
end;
end;
procedure pr_swap(var a,b:integer);
begin
a:=a+b;
b:=a-b;
a:=a-b;
end;
procedure sort1(n,s:byte;var mass: mas); {сортировка матрицы по убыванию}
var i,j:byte; pr:boolean;
begin
pr:=true;
while pr do
begin
pr:=false;
for i:=1 to n do
begin
for j:=1 to s-1 do
if mass[i,j]<mass[i,j+1]
then
begin
pr_swap(mass[i,j],mass[i,j+1]);
pr:=true;
end;
if (i<>n)and(mass[i,s]<mass[i+1,1])
then
begin
pr_swap(mass[i,s],mass[i+1,1]);
pr:=true;
end;
end;
end;
end;
BEGIN
clrscr;
InsertMas(massiv);
PrintMas(massiv);
repeat
writeln('Выберите вариант сортировки:');
writeln('1 - Выбора');
writeln('2 - Вставки');
writeln('3 - Пузырька');
writeln;
write('...');
ch:=readkey;
until (ch='1') or (ch='2') or (ch='3');
case ch of
'1': sort1;
'2': sort2;
'3': sort3;
end;
readkey;
readln;
readln;
END.
помогите пжлст очень буду благодарен, а то хана мне((