Удалить все двузначные отрицательные элементы массива - Pascal ABC
Формулировка задачи:
Pascal ABC
Решение задачи: «Удалить все двузначные отрицательные элементы массива»
textual
Листинг программы
const n_max = 500; var a: array[1..n_max]of integer; n, i, j: integer; begin randomize; write('Введите размерность массива: '); readln(n); writeln('Исходный массив: '); for i := 1 to n do begin a[i] := -n_max div 2 + random(n_max); write(a[i], ' '); end; writeln; i := 1; while i <= n do begin if (a[i] >= -99) and (a[i] <= -10) then //если <0 begin for j := i to n - 1 do//то сдвигаем массив на 1 влево a[j] := a[j + 1]; n := n - 1;//уменьшаем длину массива на 1 end else i := i + 1;//если нет, переходим к следующему end; writeln('Результат: '); for i := 1 to n do write(a[i], ' '); end.
Объяснение кода листинга программы
- Объявлены переменные: n_max, a, n, i, j (размерность массива, сам массив, количество элементов, счетчик элементов, счетчик сдвига).
- Введен размер массива с помощью функции readln().
- Выведен исходный массив с помощью цикла for и функции write(). Каждый элемент массива выводится с помощью функции write(a[i], ' ').
- Запущен цикл while, который будет выполняться до тех пор, пока не будут удалены все двузначные отрицательные элементы массива.
- Внутри цикла while проверено условие (a[i] >= -99) and (a[i] <= -10). Если условие истинно, то выполняется блок кода, иначе цикл продолжает работу.
- Внутри блока кода выполнен цикл for, который сдвигает элементы массива на 1 влево, начиная с элемента с индексом i и до элемента с индексом n-1.
- После цикла for выполнено уменьшение значения переменной n на 1, так как длина массива уменьшилась на 1.
- Если условие в цикле while ложно, то переменная i увеличивается на 1 и цикл продолжает работу.
- После цикла while выведен результат с помощью цикла for и функции write(). Каждый элемент массива выводится с помощью функции write(a[i], ' ').