Предмет: Информатика,
автор: syulaeva2017
Даны три массива А = (а1, а2, …, аn), B = (b1, b2, …, bm), C = (c1, c2, …, ck). (n, m и k <=20, вводятся с клавиатуры). Написать программу для последовательного объедения этих трех массивов в один и сортировки полученного массива по возрастанию.
Ответы
Автор ответа:
0
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
begin
var n:=ReadInteger('n=');
var A:=ReadArrInteger('Массив А:',n);
var m:=ReadInteger('m=');
var B:=ReadArrInteger('Массив B:',m);
var k:=ReadInteger('k=');
var C:=ReadArrInteger('Массив C:',k);
var D:=(A+B+C).Sorted;
D.Println
end.
Тестовое решение
n= 5
Массив А: 7 11 -4 9 8
m= 3
Массив B: -5 -3 -8
k= 4
Массив C: 1 4 9 7
-8 -5 -4 -3 1 4 7 7 8 9 9 11
begin
var n:=ReadInteger('n=');
var A:=ReadArrInteger('Массив А:',n);
var m:=ReadInteger('m=');
var B:=ReadArrInteger('Массив B:',m);
var k:=ReadInteger('k=');
var C:=ReadArrInteger('Массив C:',k);
var D:=(A+B+C).Sorted;
D.Println
end.
Тестовое решение
n= 5
Массив А: 7 11 -4 9 8
m= 3
Массив B: -5 -3 -8
k= 4
Массив C: 1 4 9 7
-8 -5 -4 -3 1 4 7 7 8 9 9 11
Автор ответа:
0
//Pascal ABC.NET 3.1 сборка 1219
Type
ty=array[1..60] of integer;
Var
a,b,c:array[1..20] of integer;
ar:ty;
n,m,k,i:integer;
procedure quicksort(var a:ty; Lo,Hi: integer);
procedure sort(l,r: integer);
var
i,j,x,y: integer;
begin
i:=l;
j:=r;
x:=a[random(r-l+1)+l];
repeat
while a[i]<x do
i:=i+1;
while x<a[j] do
j:=j-1;
if i<=j then
begin
if a[i] > a[j] then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
end;
i:=i+1;
j:=j-1;
end;
until i>=j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin;
randomize;
sort(Lo,Hi);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
ar[i]:=a[i];
end;
readln(m);
for i:=1 to m do
begin
readln(b[i]);
ar[i+n]:=b[i];
end;
readln(k);
for i:=1 to k do
begin
readln(c[i]);
ar[i+n+m]:=c[i];
end;
quicksort(ar,1,n+m+k);
writeln('Final array:');
for i:=1 to n+m+k do
write(ar[i]:4);
end.
Пример ввода:
3
1
2
3
3
1
2
3
3
1
2
3
Пример вывода:
Final array:
1 1 1 2 2 2 3 3 3
Type
ty=array[1..60] of integer;
Var
a,b,c:array[1..20] of integer;
ar:ty;
n,m,k,i:integer;
procedure quicksort(var a:ty; Lo,Hi: integer);
procedure sort(l,r: integer);
var
i,j,x,y: integer;
begin
i:=l;
j:=r;
x:=a[random(r-l+1)+l];
repeat
while a[i]<x do
i:=i+1;
while x<a[j] do
j:=j-1;
if i<=j then
begin
if a[i] > a[j] then
begin
y:=a[i];
a[i]:=a[j];
a[j]:=y;
end;
i:=i+1;
j:=j-1;
end;
until i>=j;
if l<j then sort(l,j);
if i<r then sort(i,r);
end;
begin;
randomize;
sort(Lo,Hi);
end;
begin
readln(n);
for i:=1 to n do
begin
readln(a[i]);
ar[i]:=a[i];
end;
readln(m);
for i:=1 to m do
begin
readln(b[i]);
ar[i+n]:=b[i];
end;
readln(k);
for i:=1 to k do
begin
readln(c[i]);
ar[i+n+m]:=c[i];
end;
quicksort(ar,1,n+m+k);
writeln('Final array:');
for i:=1 to n+m+k do
write(ar[i]:4);
end.
Пример ввода:
3
1
2
3
3
1
2
3
3
1
2
3
Пример вывода:
Final array:
1 1 1 2 2 2 3 3 3
Похожие вопросы
Предмет: Математика,
автор: shishak1988
Предмет: Математика,
автор: gasdgasr235
Предмет: Физика,
автор: andy0509andy
Предмет: Математика,
автор: vikusyavelik
Предмет: Математика,
автор: mashsarechkina