Даны три массива А = (а1, а2, …, аn), B = (b1, b2, …, bm), C = (c1, c2, …, ck). (n, m и k <=20, вводятся с клавиатуры). Написать программу для последовательного объедения этих трех массивов в один и сортировки полученного массива по возрастанию.
//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] i:=i+1; while x j:=j-1; if i<=j then<br> 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 if iend; 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
// 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