Паскаль, после каждого элемента с заданным значением удалить элемент, если он отличен от заданного

Здравствуйте. Я вот кое что не пойму с заданием. Вот само задание: После каждого элемента с заданным значением удалить один элемент, если он отличен от заданного значения.

Смысл задания в том, что я задаю массив, потом ещё один элемент и проверяю введённый элемент, если такой элемент есть в массиве, то следующий за ним элемент удаляется?
Допустим пример.
Массив: 1 2 3 4 5
Ещё один элемент: 3
Значит он находит 3 в массиве и после него удаляет элемент, получается 1 2 3 5

Так а что именно непонятно? Вроде ж это и написано в задании.

Да, не. Я убедится, что я вообще задание само правильно понял. ))

Не очень удачный пример привели для Вашего задания.
Вот так понятней будет:
Задан массив:
[1, 12, 3, 56, 34, 34, 2, 18]
Веденный элемент:
[34]
Нашли в массиве 34, сравнили с следующим элементом. Если равно оставляем как есть, иначе удаляем отличный элемент (остальные не трогаем).

При удалении обычно удобнее проходить массив с конца, так что надо сравнивать текущий с предыдущим: если текущий не 34, а предыдущий 34, то удалять текущий.

ага

Кстати, а как мне тут удалить элемент?

program lb_4;
var
  i, n, k,num: integer;
  m: array [1..1000] of integer;
begin
  repeat
    writeln('Введите любое целое количество элементов от 1 до 1000');
    readln(n);
    if n < 1 then
      writeln('n не может быть меньше единицы')
    else if n > 1000 then
      writeln('n не может быть больше тысячи')
  until (n >= 1) and (n <= 1000);
    if n = 1 then begin
    writeln('В массиве не может быть один элемен, удалять будет нечего.');
    exit;
    end;
  for i := 1 to n do 
  begin
    write('Введите ', i, ' элемент: ');
    readln(m[i]);
  end;
  writeln;
  write('Укажите еще один элемент: ');
    readln(num);
  writeln('Исходный массив:');
  for i := 1 to n do 
  begin
    write(m[i], ' ');
  end;
  for i := 1 to n do
    if m[i] = m[num] then
    begin
      // код
    end;
  writeln;
  writeln('Массив после удаления:');
  for i := 1 to n do
    write(m[i], ' '); 
  writeln();
end.

Так выше ж написано.

Ну а само удаление это например сдвиг всех элементов после удаляемого влево и уменьшение n на 1.