Удаление элементов одномерного массива | Язык Паскаль

Удаление элементов одномерного массива

Имеется одномерный массив, содержащий числа от 0 до 35-ти. Требуется исключить из него все элементы, значения которых меньше 15.

Требуется присвоить значение N переменной m, так как N - это константа и не может быть изменена. Поскольку при обходе массива в цикле while некоторые элементы будут удаляться, то значение m, обозначающее длину массива, будет уменьшаться.

Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (i := i + 1) и не уменьшаем массив (m не меняется).

Программа на языке Паскаль:

const N = 10;
 
var
    arr: array[1..N] of integer;
    m, i, j: integer;
 
begin
    randomize;
    for i := 1 to N do begin
        arr[i] := random(35);
        write(arr[i], ' ');
    end;
    writeln;
 
    m := N;
    i := 1;
    while i <= m do
        if arr[i] < 15 then begin
            for j := i to m - 1 do
                arr[j] := arr[j+1];
            m := m - 1
        end
        else
            i := i + 1;
 
    for i:= 1 to m do
        write(arr[i], ' ');
    writeln;
 
end.

Пример выполнения программы:

5 34 16 12 12 17 14 15 19 8 
34 16 17 15 19