Найти сумму и произведение всех элементов массива - Pascal

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

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

Дана задача, нужно ее изменить, желательно с пояснением. ---------------------------------- Дан двумерный массив A (m, n). Найти сумму и произведение всех элементов, а также вычислить минимальный и максимальный элементы.
Листинг программы
  1. Program lab5;
  2. Var
  3. A: array [1..10,1..15] of real;
  4. i, j, m, n: integer; s, p, min, max: real;
  5. Begin
  6. writeln('Введи m,n'); read(m,n);
  7. writeln('Введи массив A');
  8. for i:=1 to m do
  9. for j:=1 to n do
  10. read(A[i,j]);
  11. s:=0; p:=1; min:=A[1,1]; max:=A[1,1];
  12. for i:=1 to m do for j:=1 to n do
  13. begin
  14. s:=s+A[i,j]; p:=p*A[i,j];
  15. if A[i,j]<min then min:=A[i,j];
  16. if A[i,j]>max then max:=A[i,j];
  17. end;
  18. writeln('s=',s:10:3,' p=',p:10:3,
  19. ' min=',min:10:3,' max=',max:10:3);
  20. End.
Исправить программу так, чтобы она находила сумму и произведение элементов выше главной диагонали.

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

textual
Листинг программы
  1. var
  2.     a: Array [Byte, Byte] Of Real;
  3.     i, j, m, n, iMin, jMin, iMax, jMax: Byte;
  4.     s, p: Real;
  5. begin
  6.     {проверяем корректность ввода размеров матрицы}
  7.     repeat
  8.         Write('Input n=');
  9.         ReadLn(n);
  10.     until (n > 0);
  11.     repeat
  12.         Write('Input m=');
  13.         ReadLn(m);
  14.     until (m > 0);
  15.     s := 0; p := 1;
  16.     iMin := 0; iMax := 0;
  17.     jMin := 0; jMax := 0;
  18.     {вводим данные матрицы и одновременно производим поиски/вычисления}
  19.     for i := 0 to n - 1 do
  20.         for j := 0 to m - 1 do
  21.         begin
  22.             Write('a[', i + 1, '][', j + 1, ']=');
  23.             ReadLn(a[i, j]);
  24.             if (j > i)
  25.             then //если мы находимся выше главной диагонали
  26.             begin
  27.                 s := s + a[i, j];
  28.                 p := p * a[i, j];
  29.             end;
  30.             if (a[i, j] < a[iMin, jMin])
  31.             then //ищем минимум по всей матрице
  32.             begin
  33.                 iMin := i;
  34.                 jMin := j;
  35.             end;
  36.             if (a[i, j] > a[iMax, jMax])
  37.             then //ищем максимум по всей матрице
  38.             begin
  39.                 iMax := i;
  40.                 jMax := j;
  41.             end;
  42.         end;
  43.     WriteLn('s=', s:0:3, '    p=', p:0:3);
  44.     WriteLn('min=', a[iMin, jMin]:0:3, '    max=', a[iMax, jMax]:0:3);
  45. end.

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

  1. Объявление переменных:
    • a: Array [Byte, Byte] Of Real; - двумерный массив чисел с плавающей запятой
    • i, j, m, n, iMin, jMin, iMax, jMax: Byte; - переменные типа Byte для циклов и поиска минимума и максимума
    • s, p: Real; - переменные для хранения суммы и произведения элементов массива
  2. Проверка корректности ввода размеров матрицы:
    • Пользователю предлагается ввести значение n до тех пор, пока введенное значение не будет больше 0
    • Пользователю предлагается ввести значение m до тех пор, пока введенное значение не будет больше 0
  3. Инициализация переменных:
    • s и p устанавливаются в 0 для хранения суммы и произведения соответственно
    • iMin, iMax, jMin, jMax устанавливаются в 0 для хранения координат минимального и максимального элемента
  4. Ввод данных и одновременные поиски/вычисления:
    • Циклы для ввода элементов массива и выполнения поиска и вычислений
    • Если элемент находится выше главной диагонали, его значение добавляется к сумме s и умножается на значение p
    • Находится минимальное и максимальное значение в массиве и их координаты сохраняются
  5. Вывод результатов:
    • Вывод суммы s и произведения p с точностью до 3 десятичных знаков
    • Вывод минимального и максимального значений в массиве с точностью до 3 десятичных знаков.

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


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

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

13   голосов , оценка 3.615 из 5

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

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

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