ses crt;
type Tmas=array[1..100] of integer;{тип массивов}
procedure Vvod(var a:Tmas;var n:byte;c:char);
{процедура ввода данных по каждому массиву, массив и его размер входные и выходные параметры, имя массива-входной}
var i:byte;
begin
write('Razmer massiva ',c,'=');readln(n);
writeln('Ishodnyj massiv ',c,':');
for i:=1 to n do
begin
a[i]:=random(10);
write(a[i],' ');
end;
writeln;
end;
procedure Vyvod(var a:Tmas;n:byte;c:char);
{вывод измененного массива, входной и выходной- массив, входные - размер и имя}
var i:byte;
begin
Writeln('Novyj razmer massiva ',c,'=',n);
writeln('Izmenennyj massiv ',c,':');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
end;
procedure Double(var a:Tmas;var n:byte;x:integer);
{основная процедура, параметры по условию}
var i,j:byte;
begin
write('Chislo dlya udvoenij =');readln(x);
i:=1;
while i<=n do {идем по массиву пока не конец}
begin
if a[i]=x then{если элемент равен заданному числу}
begin
n:=n+1;{увеличиваем размер массива}
for j:=n downto i+2 do{от конца массива до элемента за найденным}
a[j]:=a[j-1];{сдвигаем все елементы вправо}
a[i+1]:=x;{на освободившееся место ставим это число}
i:=i+2;{перепрыгиваем через него на следующий элемент}
end
else i:=i+1;{если не равно, переходим к следующему}
end;
end;
var a,b,c:Tmas;{раздел переменных программы}
na,nb,nc,i:byte;
xa,xb,xc:integer;
begin {начало программы}
clrscr;
randomize;
Vvod(a,na,'A');{вызываем все процедуры по три раза}
Double(a,na,xa);
Vyvod(a,na,'A');
Vvod(b,nb,'B');
Double(b,nb,xb);
Vyvod(b,nb,'B');
Vvod(c,nc,'C');
Double(c,nc,xc);
Vyvod(c,nc,'C');
readln
end.