Объяснение:
program sortmas;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
const z=28;
type mas=array[1..z] of integer;
var
u, u1,u2, mas1:mas;
buf:integer;
procedure ch1(n:integer);
var i,j,k:integer;
begin
j:=0;k:=0;
for i:=1 to n do
u[i]:= random(21)+20; //u[i]:= random(20,40); для PascalABC
if i mod 2=0 then
j:=j+1;u2[j]:=u[i];
end
else
begin k:=k+1;u1[k]:=u[i];end ;
end;
//сортировка по возрастанию
// в mas1 отсортированный массив
procedure vozr1(a:mas;m:integer);
var i,k:integer;
for k:=1 to m do
for i:=k to m do
if a[k]>=a[i] then
buf:=a[k];
a[k]:=a[i];
a[i]:=buf;
end ;
mas1:=a;
//сортировка по убыванию
procedure ubyv1(a:mas;m:integer);
if a[k]<=a[i] then
// Вывод массива на экран
// b -массив n-размер,text - что хотим написать
procedure showmas(b:mas;n:integer;text:string);
i:integer;
writeln(text);
write(b[i],' ');
readln;
ch1(28);
showmas(u,28,'Исходный массив u');
showmas(u1,14,'Массив с нечетными номерами ');
showmas(u2,14,'Массив с четными номерами');
vozr1(u1,14);
u1:=mas1;
showmas(u1,14,'Массив с нечетными номерами отсортированный по возрастанию');
ubyv1(u2,14);
u2:=mas1;
showmas(u2,14,'Массив с четными номерами отсортированный по убыванию');
end.
Объяснение:
program sortmas;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
const z=28;
type mas=array[1..z] of integer;
var
u, u1,u2, mas1:mas;
buf:integer;
procedure ch1(n:integer);
var i,j,k:integer;
begin
j:=0;k:=0;
for i:=1 to n do
u[i]:= random(21)+20; //u[i]:= random(20,40); для PascalABC
for i:=1 to n do
begin
if i mod 2=0 then
begin
j:=j+1;u2[j]:=u[i];
end
else
begin k:=k+1;u1[k]:=u[i];end ;
end;
end;
//сортировка по возрастанию
// в mas1 отсортированный массив
procedure vozr1(a:mas;m:integer);
var i,k:integer;
begin
for k:=1 to m do
for i:=k to m do
begin
if a[k]>=a[i] then
begin
buf:=a[k];
a[k]:=a[i];
a[i]:=buf;
end ;
end;
mas1:=a;
end;
//сортировка по убыванию
// в mas1 отсортированный массив
procedure ubyv1(a:mas;m:integer);
var i,k:integer;
begin
for k:=1 to m do
for i:=k to m do
begin
if a[k]<=a[i] then
begin
buf:=a[k];
a[k]:=a[i];
a[i]:=buf;
end ;
end;
mas1:=a;
end;
// Вывод массива на экран
// b -массив n-размер,text - что хотим написать
procedure showmas(b:mas;n:integer;text:string);
var
i:integer;
begin
writeln(text);
for i:=1 to n do
write(b[i],' ');
readln;
end;
begin
ch1(28);
showmas(u,28,'Исходный массив u');
showmas(u1,14,'Массив с нечетными номерами ');
showmas(u2,14,'Массив с четными номерами');
vozr1(u1,14);
u1:=mas1;
showmas(u1,14,'Массив с нечетными номерами отсортированный по возрастанию');
ubyv1(u2,14);
u2:=mas1;
showmas(u2,14,'Массив с четными номерами отсортированный по убыванию');
end.