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

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

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

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

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

textual
Листинг программы
const max=100;
var a:array[1..max] of integer;
    n,i,i1,i2,j:integer;
begin
repeat
write('Размер массива n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(10);
  write(a[i]:4);
 end;
writeln;
i1:=0;
i2:=0;
for i:=1 to n do
if a[i]=0 then
 begin
  if i1=0 then i1:=i
  else if i2=0 then i2:=i;
 end;
if i1=0 then write('В массиве нет 0')
else if i2=0 then write('В массиве нет двух 0')
else if i2-i1=1 then write('Ноли рядом, нет элементов для удаления')
else
 begin
  for i:=1 to i2-i1-1 do
   begin
    for j:=i1+1 to n-1 do
    a[j]:=a[j+1];
    n:=n-1;
   end;
  writeln('Сжатый массив:');
  for i:=1 to n do
  write(a[i]:4);
 end;
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
Похожие ответы