Найти сумму и произведение всех элементов массива - Pascal
Формулировка задачи:
Дана задача, нужно ее изменить, желательно с пояснением.
----------------------------------
Дан двумерный массив A (m, n). Найти сумму и произведение всех элементов, а также вычислить минимальный и максимальный элементы.
Исправить программу так, чтобы она находила сумму и произведение элементов выше главной диагонали.
Program lab5; Var A: array [1..10,1..15] of real; i, j, m, n: integer; s, p, min, max: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); s:=0; p:=1; min:=A[1,1]; max:=A[1,1]; for i:=1 to m do for j:=1 to n do begin s:=s+A[i,j]; p:=p*A[i,j]; if A[i,j]<min then min:=A[i,j]; if A[i,j]>max then max:=A[i,j]; end; writeln('s=',s:10:3,' p=',p:10:3, ' min=',min:10:3,' max=',max:10:3); End.
Решение задачи: «Найти сумму и произведение всех элементов массива»
textual
Листинг программы
var a: Array [Byte, Byte] Of Real; i, j, m, n, iMin, jMin, iMax, jMax: Byte; s, p: Real; begin {проверяем корректность ввода размеров матрицы} repeat Write('Input n='); ReadLn(n); until (n > 0); repeat Write('Input m='); ReadLn(m); until (m > 0); s := 0; p := 1; iMin := 0; iMax := 0; jMin := 0; jMax := 0; {вводим данные матрицы и одновременно производим поиски/вычисления} for i := 0 to n - 1 do for j := 0 to m - 1 do begin Write('a[', i + 1, '][', j + 1, ']='); ReadLn(a[i, j]); if (j > i) then //если мы находимся выше главной диагонали begin s := s + a[i, j]; p := p * a[i, j]; end; if (a[i, j] < a[iMin, jMin]) then //ищем минимум по всей матрице begin iMin := i; jMin := j; end; if (a[i, j] > a[iMax, jMax]) then //ищем максимум по всей матрице begin iMax := i; jMax := j; end; end; WriteLn('s=', s:0:3, ' p=', p:0:3); WriteLn('min=', a[iMin, jMin]:0:3, ' max=', a[iMax, jMax]:0:3); end.
Объяснение кода листинга программы
- Объявление переменных:
a: Array [Byte, Byte] Of Real;
- двумерный массив чисел с плавающей запятойi, j, m, n, iMin, jMin, iMax, jMax: Byte;
- переменные типа Byte для циклов и поиска минимума и максимумаs, p: Real;
- переменные для хранения суммы и произведения элементов массива
- Проверка корректности ввода размеров матрицы:
- Пользователю предлагается ввести значение
n
до тех пор, пока введенное значение не будет больше 0 - Пользователю предлагается ввести значение
m
до тех пор, пока введенное значение не будет больше 0
- Пользователю предлагается ввести значение
- Инициализация переменных:
s
иp
устанавливаются в 0 для хранения суммы и произведения соответственноiMin
,iMax
,jMin
,jMax
устанавливаются в 0 для хранения координат минимального и максимального элемента
- Ввод данных и одновременные поиски/вычисления:
- Циклы для ввода элементов массива и выполнения поиска и вычислений
- Если элемент находится выше главной диагонали, его значение добавляется к сумме
s
и умножается на значениеp
- Находится минимальное и максимальное значение в массиве и их координаты сохраняются
- Вывод результатов:
- Вывод суммы
s
и произведенияp
с точностью до 3 десятичных знаков - Вывод минимального и максимального значений в массиве с точностью до 3 десятичных знаков.
- Вывод суммы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д