|
MAX & MIN
Поиск максимума и минимума (вариант 1 - максимальное и минимальное значения):
CONST
kol_strok=5;
kol_stolbcov=4;
VAR
A:array[1..kol_strok,1..kol_stolbcov] of Real;
i,j:integer;
max,min:real;
BEGIN
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
Read(A[i,j]);
max:=A[1,1];
min:=A[1,1];
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
begin
if A[i,j]>max then max:=A[i,j];
if min>A[i,j] then min:=A[i,j];
end;
Writeln('Максимальный элемент = ',max:4:2);
Writeln('Минимальный элемент = ',min:4:2);
END.
|
max:=A[1,1]; - начальное значение максимума, предполагаем, что максимальный элемент стоит на пересечении 1-ой строки и 1-го столбца;
min:=A[1,1]; - начальное значение минимума, предполагаем, что минимальный элемент стоит на пересечении 1-ой строки и 1-го столбца;
for i:=1 to kol_strok do - перечисляем все строки
for j:=1 to kol_stolbcov do - перечисляем все столбцы
if A[i,j]>max then max:=A[i,j]; - если текущий элемент матрицы А больше значения переменной max, то переменной max присваиваем значение этого элемента
if min>A[i,j] then min:=A[i,j]; - если значение переменной min больше текущего элемента матрицы А, то переменной min присваиваем значение этого элемента
Поиск максимума и минимума (вариант 2 - позиции максимального и минимального элементов):
CONST
kol_strok=5;
kol_stolbcov=4;
VAR
A:array[1..kol_strok,1..kol_stolbcov] of Real;
i,j:integer;
max_stroka,max_stolbec,min_stroka,min_stolbec:integer;
BEGIN
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
Read(A[i,j]);
max_stroka:=1;
max_stolbec:=1;
min_stroka:=1;
min_stolbec:=1;
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
begin
if A[i,j]>A[max_stroka,max_stolbec] then
begin
max_stroka:=i;
max_stolbec:=j;
end;
if A[min_stroka,min_stolbec]>A[i,j] then
begin
min_stroka:=i;
min_stolbec:=j;
end;
end;
Writeln('Максимальный элемент = ',A[max_stroka,max_stolbec]:4:2);
Writeln('Минимальный элемент = ',A[min_stroka,min_stolbec]:4:2);
END.
|
max_stroka:=1; - предположим, что максимальный элемент находится в 1-ой строке
max_stolbec:=1; - предположим, что максимальный элемент находится в 1-ом столбце
min_stroka:=1; - предположим, что минимальный элемент находится в 1-ой строке
min_stolbec:=1; - предположим, что минимальный элемент находится в 1-ом столбце
if A[i,j]>A[max_stroka,max_stolbec] then - если текущий элемент матрицы А больше элемента находящегося на пересечении max_stroka и max_stolbec, то сохраняем его позицию в наших переменных
if A[min_stroka,min_stolbec]>A[i,j] then - если элемент находящийся на пересечении min_stroka и min_stolbe больше текущего элемента матрицы А, то сохраняем позицию текущего элемента в наших переменных
Пример программы:
Program Primer;
USES CRT;
CONST
kol_strok=5;
kol_stolbcov=4;
VAR
A:array[1..kol_strok,1..kol_stolbcov] of Real;
i,j:integer;
max_stroka,max_stolbec,min_stroka,min_stolbec:integer;
BEGIN
Writeln('Введите элемента матрицы А:');
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
Read(A[i,j]);
max_stroka:=1;
max_stolbec:=1;
min_stroka:=1;
min_stolbec:=1;
for i:=1 to kol_strok do
for j:=1 to kol_stolbcov do
begin
if A[i,j]>A[max_stroka,max_stolbec] then
begin
max_stroka:=i;
max_stolbec:=j;
end;
if A[min_stroka,min_stolbec]>A[i,j] then
begin
min_stroka:=i;
min_stolbec:=j;
end;
end;
ClrScr;
Writeln('Матрица А:');
for i:=1 to kol_strok do
begin
for j:=1 to kol_stolbcov do
Write(A[i,j]:4:2,' ');
Writeln;
end;
Writeln;
Writeln('Максимальный элемент A[',max_stroka,';',max_stolbec,'] = ',A[max_stroka,max_stolbec]:4:2);
Writeln('Минимальный элемент A[',min_stroka,';',min_stolbec,'] = ',A[min_stroka,min_stolbec]:4:2);
Readln;
END.
|
|