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