Сформировать новый массив заданным образом - Turbo Pascal

Формулировка задачи:

Задан массив В(n). Сформировать новый массив таким образом, чтобы после каждого четного элемента массива вставить дополнительный элемент со значением 1, а после каждого нечетного элемента массива вставить дополнительный элемент со значением -1. Решение:
var i,n,k,m:integer;
    a:array [1..101] of integer;
begin
  writeln('Vvedite razmer massiva ');
  readln(n);
  for i:=1 to n do
  begin
    write('a[',i,']=');
    readln(a[i]);
  end;
for i := n downto 1 do
begin
if a[i] mod 2 = 0 then
begin
    a[i-1]:=a[i];
    a[i]:=1;
    n:=n+1;
end
 else
 begin
    a[i-1]:=a[i];
    a[i]:=-1;
    n:=n+1;
 end;
 end;
  writeln;
for i:=1 to n do
  writeln('a[',i,']=',a[i]);
  readln;
  end.
Не соображу как это делается)

Код к задаче: «Сформировать новый массив заданным образом - Turbo Pascal»

textual
uses crt;
const nmax=50;
var a:array[1..2*nmax] of integer;
    n,mx,i,j,k:integer;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  repeat
  a[i]:=random(20);
  until abs(a[i])<>1;{без -1 и 1}
  write(a[i]:4);
 end;
writeln;
i:=1;
while i<=n do
 begin
  n:=n+1;
  for j:=n downto i+2 do
  a[j]:=a[j-1];
  if odd(a[i]) then a[i+1]:=-1
  else a[i+1]:=1;
  i:=i+2;
 end;
writeln('Массив после вставок:');
for i:=1 to n do
write(a[i]:4);
readln
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

10   голосов, оценка 4.200 из 5


СДЕЛАЙТЕ РЕПОСТ
Похожие ответы