Программа


program Matrix(input,output);
{ Поиск min и max элементов в 
  двух матрицах }
const Max=19;  { максимальное количество строк и
                столбцов в матрицах (возможное) }
type MatrixType=array [1..Max,1..Max] of real; { описание типа "матрица" }
var A,B:MatrixType; { матрицы }
    M,N:integer; { число строк и столбцов (заданное) }
function InputMax(S:string;Max:integer):integer;
{ функция определения числа столбцов и строк матриц }
var b:integer; { переменная для ввода и анализа корректности введенного
                 числа строк и столбцов матриц }
begin
  repeat  { цикл ввода }
    writeln;  { пропуск строки }
    write('Введите число ',S,' матрицы [1.. ',Max,'] ');
    { приглашение ввести число строк или столбцов матрицы }
    readln(b); { ввод числа строк или столбцов }
    if not (b in [1..Max])
      then writeln('Введенное число находится вне допустимого диапазона')
    { анализ корректности введенного числа и ссобщение об ошибке }
  until b in [1..Max]; { выход из цикла при получении корректного значения }
  InputMax:=b { определение значения функции }
end;
procedure InputMatrix(var MatrixVar:MatrixType;M,N:integer);
{ процедура ввода матрицы }
var i,k:integer; { переменные для организации циклов }
begin
  for i:=1 to M do  { цикл ввода строк }
    for k:=1 to N do  { цикл ввода столбцов }
      begin
        write('Введите элемент матрицы [',i,',',k,'] ');
        { приглашение ввести элемент матрицы }
        readln(MatrixVar[i,k]) { ввод элемента матрицы }
      end
end;
procedure FindWrite(S:string;var MatrixVar:MatrixType;M,N:integer);
{ процедура поиска и вывода наибольшего и наименьшего элементов матрицы }
var i,k:integer; { переменные для организации циклов }
    iNumberMax,kNumberMax,iNumberMin,kNumberMin:integer;
    { номера строк и столбцов наибольшего и наименьшего элементов }
    ElementMax,ElementMin:real;{ наибольший и наименьший элементы }
begin
  ElementMax:=MatrixVar[1,1]; { определение начального значения
                                наибольшего элемента }
  iNumberMax:=1; { определение начального значения
                   строки наибольшего элемента }
  kNumberMax:=1; { определение начального значения
                   столбца наибольшего элемента }
  ElementMin:=MatrixVar[1,1]; { определение начального значения
                                наименьшего элемента }
  iNumberMin:=1; { определение начального значения
                   строки наименьшего элемента }
  kNumberMin:=1; { определение начального значения
                   столбца наименьшего элемента }
  for i:=1 to M do  { цикл просмотра строк }
    for k:=1 to N do { цикл просмотра столбцов }
      begin
        if MatrixVar[i,k]>ElementMax { если текущий элемент матрицы больше
                                       максимального из просмотренных }
          then { то }
            begin
              ElementMax:=MatrixVar[i,k]; { переопределение наибольшего
                                            элемента матрицы }
              iNumberMax:=i; { переопределение номера строки
                               наибольшего элемента матрицы }
              kNumberMax:=k { переопределение номера столбца
                              наибольшего элемента матрицы }
            end;
        if MatrixVar[i,k]<ElementMin { если текущий элемент матрицы меньше
                                       минимального из просмотренных  }
          then   { то }
            begin
              ElementMin:=MatrixVar[i,k]; { переопределение наименьшего
                                            элемента матрицы }
              iNumberMin:=i; { переопределение номера строки
                               наименьшего элемента матрицы }
              kNumberMin:=k { переопределение номера столбца
                              наименьшего элемента матрицы }
            end
      end;
  writeln('Максимальный элемент матрицы ',S,'[',iNumberMax,',',kNumberMax,
          ']=',ElementMax); { Вывод максимального элемента матрицы }
  writeln('Минимальный элемент матрицы ',S,'[',iNumberMin,',',kNumberMin,
          ']=',ElementMin)  { Вывод минимального элемента матрицы }
end;
begin
  M:=InputMax('строк',Max);    { определение числа строк }
  N:=InputMax('столбцов',Max); { определение числа столбцов }
  writeln('Ввод матрицы A:');  { приглашение ввести матрицу A }
  InputMatrix(A,M,N);          { ввод матрицы A размерностью M*N }
  writeln('Ввод матрицы B:');  { приглашение ввести матрицу B }
  InputMatrix(B,M,N);          { ввод матрицы B размерностью M*N }
  FindWrite('A',A,M,N); { Поиск максимального и минимального для матрицы A
                          и вывод результата }
  FindWrite('B',B,M,N); { Поиск максимального и минимального для матрицы B
                          и вывод результата }
end.


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию