Найти сумму и произведение всех элементов массива - 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 десятичных знаков.
- Вывод суммы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д