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