Работа с элементами массивов. Удаление элемента массива - Free Pascal

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

Доброй ночи. Появилась еще одна небольшая проблема. Не могу реализовать следующие два вопроса (в коде пометил их комментариями как zadanie 3 и 4): 3. Найти произведение элементов одномерного массива после второго четного. 4. Удалить найденный по условию элемент одномерного массива.
program tt;
var
        i,k,buff,j,n,pr:integer;
        a,b:array[1..10] of integer;
begin
        read(n);
        for i:=1 to n do
                        read(a[i]);
        for i:=1 to n do //3 zadanie nachalo
                        begin
                                if a[i] mod 2=0 then k:=k+1;
                                if k=2 then break;
                        end;
        i:=i+1;                
        pr:=1;
        repeat begin
                pr:=pr*a[i];
                i:=i+1;
               end;
        until i=n+1;
        writeln(pr); //3 zadanie konec
         k:=0; //4 zadanie nachalo
        i:=1;
        while i<>n+1 do begin
        repeat begin
              if a[i] mod 2=0 then k:=k+1;
              if k=2 then begin
                            buff:=i;
                            break;
                          end;  
              b[i]:=a[i];
              i:=i+1;
               end;
        until i=n;
        i:=i+1;
        b[i]:=a[i];
                        end;
        for i:=1 to buff do
                      write(b[i],' ');
        for i:=i+1 to n do
                      write(b[i],' ');//4 zadanie konec
                
end.
С первым вопросом я благополучно справился, программа может найти произведение элементов массива после второго четного элемента. Со вторым же мне не удается справиться, возможно я что-то перепутал в циклах, но при вводе 5 элементов (например 1 2 3 4 5) программа дает ответ 1 2 3 0 5. Как сделать так, чтобы выдавало 1 2 3 5. Заранее спасибо. Но нужно срочно.

Код к задаче: «Работа с элементами массивов. Удаление элемента массива - Free Pascal»

textual
var i,k,j,n,pr:integer;
    a:array[1..10] of integer;
begin
readln(n);
for i:=1 to n do
read(a[i]);
j:=0;
for i:=1 to n do
 begin
  if a[i] mod 2=0 then k:=k+1;
  if k=2 then
   begin
    j:=i;
    break;
   end;
 end;
if j=0 then
 begin
  writeln('В массиве нет двух четных элеменнтов');
  readln;
  exit;
 end;
if j=n then pr:=0
else
 begin
  pr:=1;
  for i:=j+1 to n do
  pr:=pr*a[i];
 end;
writeln(pr);
if j<n then
for i:=j to n-1 do
a[i]:=a[i+1];
n:=n-1;
for i:=1 to n do
write(a[i],' ');
readln
end.
Эта работа вам не подошла?

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

9   голосов, оценка 4.000 из 5


СДЕЛАЙТЕ РЕПОСТ