Удалить все двузначные отрицательные элементы массива - 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.

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

  1. Объявлены переменные: n_max, a, n, i, j (размерность массива, сам массив, количество элементов, счетчик элементов, счетчик сдвига).
  2. Введен размер массива с помощью функции readln().
  3. Выведен исходный массив с помощью цикла for и функции write(). Каждый элемент массива выводится с помощью функции write(a[i], ' ').
  4. Запущен цикл while, который будет выполняться до тех пор, пока не будут удалены все двузначные отрицательные элементы массива.
  5. Внутри цикла while проверено условие (a[i] >= -99) and (a[i] <= -10). Если условие истинно, то выполняется блок кода, иначе цикл продолжает работу.
  6. Внутри блока кода выполнен цикл for, который сдвигает элементы массива на 1 влево, начиная с элемента с индексом i и до элемента с индексом n-1.
  7. После цикла for выполнено уменьшение значения переменной n на 1, так как длина массива уменьшилась на 1.
  8. Если условие в цикле while ложно, то переменная i увеличивается на 1 и цикл продолжает работу.
  9. После цикла while выведен результат с помощью цикла for и функции write(). Каждый элемент массива выводится с помощью функции write(a[i], ' ').

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

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