Удалить элементы массива под определёнными номерами - PascalABC.NET

Узнай цену своей работы

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

Как удалить элементы массива под определёнными номерами?

Решение задачи: «Удалить элементы массива под определёнными номерами»

textual
Листинг программы
  1. const max=100;
  2. var a:array[1..max] of integer;
  3.     n,i,i1,i2,j:integer;
  4. begin
  5. repeat
  6. write('Размер массива n=');
  7. readln(n);
  8. until n in [1..max];
  9. writeln('Исходный массив:');
  10. for i:=1 to n do
  11.  begin
  12.   a[i]:=random(10);
  13.   write(a[i]:4);
  14.  end;
  15. writeln;
  16. i1:=0;
  17. i2:=0;
  18. for i:=1 to n do
  19. if a[i]=0 then
  20.  begin
  21.   if i1=0 then i1:=i
  22.   else if i2=0 then i2:=i;
  23.  end;
  24. if i1=0 then write('В массиве нет 0')
  25. else if i2=0 then write('В массиве нет двух 0')
  26. else if i2-i1=1 then write('Ноли рядом, нет элементов для удаления')
  27. else
  28.  begin
  29.   for i:=1 to i2-i1-1 do
  30.    begin
  31.     for j:=i1+1 to n-1 do
  32.     a[j]:=a[j+1];
  33.     n:=n-1;
  34.    end;
  35.   writeln('Сжатый массив:');
  36.   for i:=1 to n do
  37.   write(a[i]:4);
  38.  end;
  39. end.

Объяснение кода листинга программы

  1. Объявлены следующие переменные:
    • max - константа, задающая максимально возможный размер массива (100).
    • a - массив целых чисел размером от 1 до max.
    • n - переменная для хранения размера массива.
    • i, i1, i2 - вспомогательные переменные для работы с массивом.
    • j - вспомогательная переменная для работы с циклом.
  2. В цикле repeat-until происходит следующее:
    • Пользователю предлагается ввести размер массива n.
    • Цикл продолжается до тех пор, пока n не будет введен в диапазоне от 1 до max.
  3. Выводится сообщение Исходный массив: и построчно выводятся значения элементов массива a с помощью цикла for. Каждое значение выводится с помощью write(a[i]:4), где i - номер элемента массива.
  4. Затем инициализируются переменные i1 и i2 для отслеживания первого и второго нулевых элементов в массиве.
  5. Цикл for проходит по всем элементам массива a. Если элемент равен 0, то:
    • Если i1 равна 0, то i1 присваивается i, иначе i2 присваивается i.
  6. После цикла проверяется, есть ли в массиве ноли рядом. Если да, то выводится сообщение Ноли рядом, нет элементов для удаления.
  7. Если i1 и i2 не равны 0, то:
    • С помощью двух вложенных циклов for элементы массива сдвигаются вправо, начиная с i1+1 и до n-1.
    • Переменная n уменьшается на 1.
  8. Затем выводится сообщение Сжатый массив: и построчно выводятся значения элементов массива a с помощью цикла for и команды write(a[i]:4).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы