Найти сумму всех положительных и произведение всех отрицательных элементов матрицы - 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.

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

  1. В начале кода объявляются переменные и матрица: — n = 10 - размерность матрицы — mas = array[1..n, 1..n] of REAL - матрица размером n на n, заполненная случайными числами от -150 до 150 — sum, p = REAL - переменные для хранения суммы и произведения отрицательных элементов матрицы — x, y = BYTE - переменные для хранения номеров строк и столбцов в матрице
  2. Выводится исходная матрица размером 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; - переход на новую строку для вывода суммы и произведения
  3. Инициализируются переменные sum и p: — sum := 0; - сумма отрицательных элементов матрицы равна 0 — p := 1; - произведение положительных элементов матрицы равно 1
  4. Циклы по строкам и столбцам матрицы для вычисления суммы и произведения: — 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]; - если элемент положительный, то умножаем его на произведение
  5. Выводятся результаты вычислений: — Writeln('Произведение=', p:0:3); - вывод произведения с точностью до 3 знаков после запятой — Writeln('Сумма=', sum:0:3); - вывод суммы с точностью до 3 знаков после запятой

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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