Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы - Free Pascal
Формулировка задачи:
Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы.
Решение задачи: «Дан массив x(20). Сжать его так, чтобы были удалены все нулевые элементы»
textual
Листинг программы
n:=20; ............ i:=1; while i<=n do if x[i]=0 then begin if i=n then n:=n-1 else begin for j:=i to n-1 do x[j]:=x[j+1]; n:=n-1; end; end else i:=i+1;
Объяснение кода листинга программы
n := 20;
— Объявляем переменнуюn
и присваиваем ей значение 20, которое является верхним индексом массива.i := 1;
— Объявляем переменнуюi
и присваиваем ей значение 1, которое является первым индексом массива.while i<=n do
— Запускаем цикл, который будет выполняться до тех пор, пока значение переменнойi
меньше или равноn
.if x[i]=0 then
— Если значение элемента массиваx
с индексомi
равно 0, то выполняется следующий блок кода.begin
— Начало блока кода.if i=n then n:=n-1
— Если значение переменнойi
равноn
, то значение переменнойn
уменьшается на 1, т.к. удаляя элемент с индексомn
, мы уменьшаем размер массива на 1.else
— Если значение переменнойi
не равноn
, то выполняется следующий блок кода.for j:=i to n-1 do
— Запускаем цикл, который будет выполняться отi
доn-1
.x[j]:=x[j+1]
— Копируем значение элемента массиваx
с индексомj+1
в элемент с индексомj
, т.е. удаляем элемент с индексомi
.n:=n-1
— Уменьшаем значение переменнойn
на 1, т.к. удаляя элемент с индексомn
, мы уменьшаем размер массива на 1.end
— Конец блока кода.else i:=i+1;
— Если значение элемента массиваx
с индексомi
не равно 0, то увеличиваем значение переменнойi
на 1 и переходим к следующей итерации цикла.- Цикл завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д