Сжать массив, выбросив нулевые элементы - Pascal

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

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

4. Дан массив, содержащий несколько нулевых элементов. Сжать его, выбросив эти элементы. Измененный массив вывести на экран.

Решение задачи: «Сжать массив, выбросив нулевые элементы»

textual
Листинг программы
uses crt;
const nmax=100;
var  a:array[1..nmax] of integer;
     n,i,j,p,x:integer;
begin
clrscr;
randomize;
repeat
write('Размер массмва до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(4);
  write(a[i],' ');
 end;
writeln;
i:=1;
while i<=n do
if a[i]=0 then
 begin
  if i=n then n:=n-1
  else
   begin
    for j:=i to n-1 do
    a[j]:=a[j+1];
    n:=n-1;
   end
 end
else i:=i+1;
writeln('Массив без нолей:');
for i:=1 to n do
write(a[i],' ');
readln
end.

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

  1. В начале программы объявляются переменные:
    • a: массив для хранения целых чисел (integer), размер которого определяется константой nmax (100);
    • n, i, j, p, x: целочисленные переменные для выполнения различных операций в программе.
  2. Цикл repeat используется для получения размера массива от пользователя. Он будет выполняться до тех пор, пока пользователь не введет значение n в допустимом диапазоне [1..nmax].
  3. В цикле for выводится исходный массив, где каждому элементу присваивается случайное значение из диапазона [1..4] с помощью функции random(4).
  4. Затем начинается цикл while, который будет выполняться до тех пор, пока в массиве остаются нулевые значения.
  5. Если встречается ноль, то выполняется блок if, который проверяет, является ли этот ноль последним элементом массива. Если это так, то значение n уменьшается на единицу, чтобы корректно обработать ситуацию.
  6. В противном случае, с помощью цикла for и оператора else, все элементы с ненулевыми значениями сдвигаются вправо, а значение n уменьшается на единицу.
  7. После обработки всех нулевых значений, выводится массив без нулей.
  8. В конце программы ожидается ввод пользователя с помощью функции readln.

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


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

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

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