Возрастание или убывание элементов в массиве через процедуры - Pascal ABC
Формулировка задачи:
Добрый вечер!
Помогите, пожалуйста!
Даны три целочисленных массива длиной n, m, l (заполняются случайными целыми числами). Если количество четных элементов больше, то отсортировать его по возрастанию, иначе по убыванию
Обязательно сделать через процедуры
Заранее благодарю
Решение задачи: «Возрастание или убывание элементов в массиве через процедуры»
textual
Листинг программы
const
max = 1000;
type
Mas = array[1..max] of integer;
procedure sort1(var a:mas;x:integer);
var i, j, buf: integer;
begin
for i:=1 to x-1 do
for j:=i+1 to x do
if a[i] > a[j] then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
end;
procedure sort2(var a:mas;x:integer);
var i, j, buf: integer;
begin
for i:=1 to x-1 do
for j:=i+1 to x do
if a[i] < a[j] then
begin
buf:=a[i];
a[i]:=a[j];
a[j]:=buf;
end;
end;
procedure vvod(var a:mas;x:integer);
var i:integer;
begin
for i:=1 to x do
a[i]:= random(10);
end;
procedure vyvod(var a:mas;x:integer);
var i:integer;
begin
for i:=1 to x do
write(a[i]:2);
writeln;
end;
procedure rez(var a:mas; x:integer);
var i, k :integer;
begin
vvod(a,x);
writeln('Исходный массив:');
vyvod(a,x);
writeln('Итоговый массив:');
for i:=1 to x do
if odd(a[i]) then
inc(k);
if x - k > k then
sort1(a,x)
else
sort2(a,x);
vyvod(a,x);
end;
var a,b,c:mas;
n,m,l:integer;
begin
writeln('Введите количество элементов первого массива');
readln(n);
rez(a,n);
writeln('Введите количество элементов первого массива');
readln(m);
rez(b,m);
writeln('Введите количество элементов первого массива');
readln(l);
rez(c,l);
end.