Найти сумму всех положительных и произведение всех отрицательных элементов матрицы - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Задав матрицу А (REAL) размером N x N (N<=10), найти сумму всех ее положительных и произведение всех ее отрицательных элементов.

Пытался написать, но что-то не так. Не могу найти ошибку.

Листинг программы
  1. uses
  2. CRT;
  3. const
  4. n = 10;
  5. var
  6. mas: array[1..n, 1..n] of REAL;
  7. sum, p: REAL;
  8. x, y: BYTE;
  9. begin
  10. begin
  11. Writeln(' Исходная матрица:');
  12. for x := 1 To n Do
  13. begin
  14. for y := 1 To n Do
  15. begin
  16. mas[x, y] := random(301) - 150;
  17. write(mas[x, y]:3:0, ' ');
  18. end;Writeln;
  19. end;
  20. end;
  21. for x := 1 To n Do
  22. begin
  23. for y := 1 To n Do
  24. begin
  25. sum := 0;
  26. p := 1;
  27. if mas[x, y] < 0 then sum := sum + mas[x, y];
  28. if mas[x, y] > 0 then p := p * mas[x, y];
  29. end;
  30. end;
  31. Writeln('Произведение=', p:3:3);
  32. Writeln('Сумма=', sum:3:3);
  33. end.

Решение задачи: «Найти сумму всех положительных и произведение всех отрицательных элементов матрицы»

textual
Листинг программы
  1. const
  2.   n = 10;
  3.  
  4. var
  5.   mas: array[1..n, 1..n] of REAL;
  6.   sum, p: REAL;
  7.   x, y: BYTE;
  8.  
  9. begin
  10.   begin
  11.     Writeln('    Исходная матрица:');
  12.     for x := 1 To n Do
  13.     begin
  14.       for y := 1 To n Do
  15.       begin
  16.         mas[x, y] := random(301) - 150;
  17.         write(mas[x, y]:10:3);
  18.       end;Writeln;
  19.      
  20.     end;
  21.   end;
  22.   sum := 0;
  23.   p := 1;
  24.   for x := 1 To n Do
  25.   begin
  26.     for y := 1 To n Do
  27.     begin
  28.       if mas[x, y] < 0 then sum := sum + mas[x, y];
  29.       if mas[x, y] > 0 then p := p * mas[x, y];
  30.      
  31.     end;
  32.   end;
  33.  
  34.   Writeln('Произведение=', p:0:3);
  35.   Writeln('Сумма=', sum:0:3);
  36. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы