Подсчитать, сколько раз встречается в заданной целочисленной матрице A(N, M) максимальное по величине число — Pascal(Паскаль)

{    Пример 3.2. Подсчитать сколько раз встречается в заданной целочис-
                 ленной матрице А(N,M) максимальное по величине число.

                                    Тест
                     ╔════════════════════╦═══════════╗
                     ║       Данные       ║           ║
                     ╟───┬───┬────────────╢ Результат ║
                     ║ N │ M │  Матрица А ║           ║
                     ╠═══╪═══╪════════════╬═══════════╣
                     ║ 2 │ 3 │  1  2  5   ║  K = 3    ║
                     ║   │   │  5  1  5   ║           ║
                     ╚═══╧═══╧════════════╩═══════════╝
}
 Program NumberOfMaximums;
   Uses Crt;
   Type Mas = Array [1..10, 1..10] of Integer;
   Var  A                   : Mas;
        N, M, K, Amax, i, j : Integer; {K - искомый результат}
 {--------------------------------------------}
 Procedure InputOutput(Var A : Mas);
  Begin { описание процедуры ввода-вывода матрицы }
    ClrScr;
    Write('Количество строк - ');    ReadLn(N);
    Write('Количество столбцов - '); ReadLn(M);
    For i := 1 to N do { ввод матрицы }
      For j := 1 to M do
        begin Write('A[' , i , ', ' , j , ']= ? ');
              ReadLn(A[i, j])
        end; WriteLn;

    ClrScr; WriteLn(' Матрица А');
    For i := 1 to N do { вывод матрицы }
      begin
        For j := 1 to M do Write(A[i, j] : 5 );
          WriteLn
      end; WriteLn
  End; { of InputOutput }
 {--------------------------------------------}
 Procedure MaxElement(Var A : Mas; Var Amax : Integer);
  Begin { описание процедуры поиска Amax }
     Amax := A[1, 1];
     For i := 1 to N do
       For j := 1 to M do
         If A[i, j] > Amax then Amax := A[i, j];
  End; {of MaxElement}
 {--------------------------------------------}
 Procedure HowMuch(Var A : Mas; K : Integer);
  Begin { описание процедуры подсчета числа вхождений Amax }
     K:=0;
     For i := 1 to N do
       For j := 1 to M do
         if A[i, j] = Amax then K := K+1;
     WriteLn('Максимальное число ', Amax : 3 ,
            ' встречается ', K, ' раз(a)'); ReadLn;
  End; {of HowMuch}
 {--------------------------------------------}
 BEGIN
   InputOutput(A);      { Вызов процедуры ввода-вывода матрицы }
   MaxElement(A, Amax); { Вызов процедуры поиска максимального элемента }
   HowMuch(A, K)        { Вызов процедуры подсчета числа
                          вхождений максимального элемента }
 END.

Leave a Comment

26 − 22 =