Найти сумму и произведение всех положительных элементов массива - PascalABC.NET
Формулировка задачи:
Задан массив В, состоящий из 20 целых чисел.Для решения использовать динамический массив B, значения элементов массива задаются с помощью клавиатуры.
Найти сумму и произведение всех положительных элементов массива.
Пример решения:
Решение задачи: «Найти сумму и произведение всех положительных элементов массива»
textual
Листинг программы
program L15_1; type mas = array of real; var b: mas; {указатель на массив} k, n, i: integer; {размерность, индекс, количество нулевых элементов массива} p, s: real;{сумма неотрицательных элементов массива} begin {заполнение массива} n := 20; SetLength(b, n); for i := 0 to n - 1 do begin write('Введите элемент массива b[', i, ']'); readln(b[i]); end; {вычисление суммы и количества} s := 0; p := 1; k := 0; for i := 0 to n - 1 do begin if b[i] > 0 then begin s := s + b[i]; p := p * b[i]; inc(k); end; end; SetLength(b, 0); {уничтожение массива} if k <> 0 then writeln('S= ', s:8:4, ' p=', p:8:4) {вывод результата} else writeln('Нет положительных'); end.
Объяснение кода листинга программы
В данном коде на языке PascalABC.Net реализована задача поиска суммы и произведения всех положительных элементов массива.
- Объявление переменных:
- b: mas; - указатель на массив;
- k, n, i: integer; - размерность, индекс, количество нулевых элементов массива;
- p, s: real; - сумма неотрицательных элементов массива.
- Заполнение массива. Используется цикл for i := 0 to n - 1 do, который позволяет заполнить массив b[i] значениями, введенными пользователем.
- Вычисление суммы и количества. Используется два вложенных цикла: внешний - для перебора элементов массива, внутренний - для проверки условия b[i] > 0. Если условие выполняется, то к сумме s прибавляется значение элемента b[i], к произведению p умножается значение элемента b[i], и к счетчику k прибавляется единица.
- Уничтожение массива. После окончания вычислений, когда массив b больше не нужен, его размерность устанавливается равной нулю, что приводит к освобождению памяти.
- Вывод результата. Если счетчик k не равен нулю, то выводятся значения суммы s и произведения p. В противном случае выводится сообщение
Нет положительных
.