uses crt;
const max=100;
var x,c:array[1..max] of integer;
n,m,i,j,k,imn,imx:byte;
b:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива X до ',max div 20,' n=');
readln(n);
until n in [1..max div 2];
writeln('Исходный массив X:');
for i:=1 to n do
begin
x[i]:=random(20)-9;
write(x[i]:3);
end;
writeln;
writeln;
repeat
write('Размер массива C до ',max div 20,' m=');
readln(m);
until m in [1..max div 2];
writeln('Исходный массив C:');
for i:=1 to m do
begin
c[i]:=random(20)-9;
write(c[i]:3);
end;
writeln;
writeln;
for i:=1 to m do
begin
n:=n+1;
x[n]:=c[i];
end;
writeln('Объединение массивов X+C');
for i:=1 to n do
write(x[i]:3);
writeln;
writeln;
for i:=2 to n do
begin
b:=x[i];
j:=1;
while b>x[j] do
inc(j);
for k:=i-1 downto j do
x[k+1]:=x[k];
x[j]:=b;
end;
writeln('Отсортированный массив:');
for i:=1 to n do
write(x[i]:3);
writeln;
writeln;
imn:=1;
imx:=1;
for i:=1 to n do
begin
if x[i]<x[imn] then imn:=i;
if x[i]>x[imx] then imx:=i;
end;
writeln('Минимальный элемент =',x[imn],' индекс=',imn);
writeln('Максимальный элемент=',x[imx],' индекс=',imx);
writeln;
b:=x[imn];
x[imn]:=x[imx];
x[imx]:=b;
writeln('Обмен максимального и минимального:');
for i:=1 to n do
write(x[i],' ');
readln
end.