{ Пример 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.