Описать процедуру DoubleX(A, N, X), дублирующую в целочисленном массиве A размера N элементы, равные целому числу X. Массив A и число N являются входными и выходными параметрами. С помощью этой процедуры продублировать числа XA, XB, XC в массивах A, B, C размера NA, NB, NC соответственно и вывести размер и содержимое полученных массивов — Pascal(Паскаль)

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.

Leave a Comment

78 + = 83