Объяснение:
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.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int arr[10],even[10], cur = 0, tmp;
srand(time(0));
puts("Source array:");
for (int i = 0; i < 10; i++){ //генерация массива +
arr[i] = rand() % 30; //отбор четных элементов
printf("%d\n", arr[i]);
if (arr[i] % 2 == 0){
even[cur] = arr[i];
cur++;
}
for (int i = 0; i < cur; i++) //сортировка пузырьком по убыванию
for(int j = 0; j < cur - i - 1; j++)
if (even[j+1] > even [j]){
tmp = even[j+1];
even[j+1] = even[j];
even[j] = tmp;
puts("Sorted array:"); //печать сортированного массива
for (int i = 0; i < cur; i++)
printf("%d\n", even[i]);
return 0;
Компилятор gcc 8.2.0
Объяснение:
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.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int arr[10],even[10], cur = 0, tmp;
srand(time(0));
puts("Source array:");
for (int i = 0; i < 10; i++){ //генерация массива +
arr[i] = rand() % 30; //отбор четных элементов
printf("%d\n", arr[i]);
if (arr[i] % 2 == 0){
even[cur] = arr[i];
cur++;
}
}
for (int i = 0; i < cur; i++) //сортировка пузырьком по убыванию
for(int j = 0; j < cur - i - 1; j++)
if (even[j+1] > even [j]){
tmp = even[j+1];
even[j+1] = even[j];
even[j] = tmp;
}
puts("Sorted array:"); //печать сортированного массива
for (int i = 0; i < cur; i++)
printf("%d\n", even[i]);
return 0;
}
Объяснение:
Компилятор gcc 8.2.0