Удалить элемент массива (Pascal)

Помечено: ,

  • В этой теме 0 ответов, 1 участник, последнее обновление 1 неделя, 4 дня назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #7075
      @admin
      StudLance.ru

      Для удаления элемента массива по значению нужно выполнить поиск удаляемого элемента (индекса) и выполнить удаление элемента по индексу. В данном случае рассмотрено удаление элемента по индексу.

      В результате удаления элемента из массива, при условии что на вход подано корректное значение индекса элемента (больше нуля и не больше размера массива), должен получиться массив, размер которого на единицу меньше старого. Причем, в новом массиве должен исчезунть элемент с заданным номером. Такая операция выполняться с помощью сдвига всех элементов, расположенных правее удаляемого на одну позицию влево. Подробно этот алгоритм описан в теме «Алгоритм: удаление элемента массива«.

      Блок-схема такого алгоритма:

      Реализация на языке Pascal:

      program remove_element;
      const
        M = 100;
      var
        arr: array [1..M] of integer;
        i, pos, n: integer;
      begin
        write('размер массива: ');
        readln(n);
        
        for i := 1 to N do
        begin
          write('элемент массива: ');
          readln(arr[i]);
        end;
        
        writeln('ваш массив: ');
        for i := 1 to n do
          write(arr[i], ' ');
        writeln('');
          
        write('позиция удаляемого элемента: ');
        readln(pos);
        
        if (pos < 1) or (pos > n) then
          write('введен неправильный индекс')
        else begin
            for i := pos to n-1 do
              arr[i] := arr[i+1];
            n := n-1;
              
            writeln('ваш массив: ');
            for i := 1 to n do
              write(arr[i], ' ');
            writeln('');
        end
      end.

      Результаты работы программы:

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×