Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы - Free Pascal

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

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

Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы.

Решение задачи: «Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы»

textual
Листинг программы
  1. n:=20;
  2. ............
  3. i:=1;
  4. while i<=n do
  5. if x[i]=0 then
  6.  begin
  7.   if i=n then n:=n-1
  8.   else
  9.    begin
  10.     for j:=i to n-1 do
  11.     x[j]:=x[j+1];
  12.     n:=n-1;
  13.    end;
  14.   end
  15. else i:=i+1;

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

  1. n := 20; — Объявляем переменную n и присваиваем ей значение 20, которое является верхним индексом массива.
  2. i := 1; — Объявляем переменную i и присваиваем ей значение 1, которое является первым индексом массива.
  3. while i<=n do — Запускаем цикл, который будет выполняться до тех пор, пока значение переменной i меньше или равно n.
  4. if x[i]=0 then — Если значение элемента массива x с индексом i равно 0, то выполняется следующий блок кода.
  5. begin — Начало блока кода.
  6. if i=n then n:=n-1 — Если значение переменной i равно n, то значение переменной n уменьшается на 1, т.к. удаляя элемент с индексом n, мы уменьшаем размер массива на 1.
  7. else — Если значение переменной i не равно n, то выполняется следующий блок кода.
  8. for j:=i to n-1 do — Запускаем цикл, который будет выполняться от i до n-1.
  9. x[j]:=x[j+1] — Копируем значение элемента массива x с индексом j+1 в элемент с индексом j, т.е. удаляем элемент с индексом i.
  10. n:=n-1 — Уменьшаем значение переменной n на 1, т.к. удаляя элемент с индексом n, мы уменьшаем размер массива на 1.
  11. end — Конец блока кода.
  12. else i:=i+1; — Если значение элемента массива x с индексом i не равно 0, то увеличиваем значение переменной i на 1 и переходим к следующей итерации цикла.
  13. Цикл завершается.

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


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

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

12   голосов , оценка 3.583 из 5

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

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

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