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.


Hosted by uCoz