Необходимо "сжать" целочисленный массив, выбросив из него нулевые элементы - Pascal

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

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

3.Дан массив a(n) c целыми элементами . Необходимо "сжать" а , выбросив из него нулевые элементы . Если нулевых элементов нет , сообщить,что сжатие невозможно .

Решение задачи: «Необходимо "сжать" целочисленный массив, выбросив из него нулевые элементы»

textual
Листинг программы
Program P13;
 
var Arr : Array[1..10] of integer;
var k,i : integer;
 
function Press(Var X : Array[1..10] of integer; n : integer) : integer;
 
Var i_from, i_to : integer;
 
Begin
 
     i_from:=1;
     i_to:=1;
     
     While (i_from <= n) Do Begin
       if (X[i_from] <> 0) Then Begin
          X[i_to]:=X[i_from];
          inc(i_from);
          inc(i_to);
       End
       else
          inc(i_from);
     End;
 
     Press:=i_to-1;
     
End;
 
Begin
 
    Arr[1]:=1;
    Arr[2]:=0;
    Arr[3]:=0;
    Arr[4]:=-1;
    Arr[5]:=9;
    Arr[6]:=11;
    Arr[7]:=0;
    Arr[8]:=0;
    Arr[9]:=-13;
    Arr[10]:=99;
 
    k:=Press(Arr,10);
    
    if k<10 then
       for i:=1 to k Do Writeln(Arr[i])
    else
       Writeln('Сжатие невозможно');
 
End.

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

В данном коде создается программа P13, которая выполняет сжатие целочисленного массива, выбрасывая нулевые элементы. Переменные и их значения:

  • Arr: массив целых чисел, размер которого может быть от 1 до 10.
  • k: переменная, которая хранит результат сжатия массива.
  • i: переменная, которая используется в цикле. Функция Press принимает два аргумента: Var X - массив целых чисел, и n - номер элемента, который нужно удалить. Она возвращает номер последнего удаленного элемента. Цикл While выполняется столько раз, сколько необходимо для удаления всех нулевых элементов из массива. Внутри цикла проверяется условие: если элемент массива не равен нулю, то его значение копируется в следующий элемент, а счетчики i_from и i_to увеличиваются. Если же элемент равен нулю, то счетчик i_from увеличивается, а счетчик i_to - уменьшается. После выполнения функции Press, переменная k содержит количество удаленных элементов, и выполняется цикл for, который выводит каждый элемент массива, начиная с первого, если k меньше 10. Если же k равно 10, то выводится сообщение Сжатие невозможно. В начале программы создается массив Arr с 10 элементами, и в него записываются некоторые значения. Затем вызывается функция Press с аргументами Arr и 10. Результат сжатия сохраняется в переменной k. После этого выполняется вывод значений массива в зависимости от значения переменной k.

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


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

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

15   голосов , оценка 3.733 из 5
Похожие ответы