Найти сумму всех положительных и произведение всех отрицательных элементов матрицы - PascalABC.NET
Формулировка задачи:
Задав матрицу А (REAL) размером N x N (N<=10), найти сумму всех ее положительных и произведение всех ее отрицательных элементов.
Пытался написать, но что-то не так. Не могу найти ошибку.
Решение задачи: «Найти сумму всех положительных и произведение всех отрицательных элементов матрицы»
textual
Листинг программы
const n = 10; var mas: array[1..n, 1..n] of REAL; sum, p: REAL; x, y: BYTE; begin begin Writeln(' Исходная матрица:'); for x := 1 To n Do begin for y := 1 To n Do begin mas[x, y] := random(301) - 150; write(mas[x, y]:10:3); end;Writeln; end; end; sum := 0; p := 1; for x := 1 To n Do begin for y := 1 To n Do begin if mas[x, y] < 0 then sum := sum + mas[x, y]; if mas[x, y] > 0 then p := p * mas[x, y]; end; end; Writeln('Произведение=', p:0:3); Writeln('Сумма=', sum:0:3); end.
Объяснение кода листинга программы
- В начале кода объявляются переменные и матрица: — n = 10 - размерность матрицы — mas = array[1..n, 1..n] of REAL - матрица размером n на n, заполненная случайными числами от -150 до 150 — sum, p = REAL - переменные для хранения суммы и произведения отрицательных элементов матрицы — x, y = BYTE - переменные для хранения номеров строк и столбцов в матрице
- Выводится исходная матрица размером n на n: — for x := 1 To n Do - цикл по строкам — for y := 1 To n Do - цикл по столбцам — mas[x, y] := random(301) - 150; - присваивание элементам матрицы случайного числа от -150 до 150 — write(mas[x, y]:10:3); - вывод значения элемента с точностью до 3 знаков после запятой — Writeln; - переход на новую строку — Writeln; - переход на новую строку для вывода суммы и произведения
- Инициализируются переменные sum и p: — sum := 0; - сумма отрицательных элементов матрицы равна 0 — p := 1; - произведение положительных элементов матрицы равно 1
- Циклы по строкам и столбцам матрицы для вычисления суммы и произведения: — for x := 1 To n Do — for y := 1 To n Do — if mas[x, y] < 0 then sum := sum + mas[x, y]; - если элемент отрицательный, то добавляем его к сумме — if mas[x, y] > 0 then p := p * mas[x, y]; - если элемент положительный, то умножаем его на произведение
- Выводятся результаты вычислений: — Writeln('Произведение=', p:0:3); - вывод произведения с точностью до 3 знаков после запятой — Writeln('Сумма=', sum:0:3); - вывод суммы с точностью до 3 знаков после запятой
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д