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

Тест

Данные Результат
N=2 
M=3
A= K=3

Школьный АЯ
алг Количество максимумов(арг цел N,M, арг цел таб А[1:N,1:M], рез цел K)
нач цел i, j, Amax
  Amax := A[1, 1] | Поиск максимального элемента матрицы
  нц для i от 1 до N
    нц для j от 1 до M
      если A[i, j] > Amax
        то Amax := A[i, j]
      все
    кц
  кц
 

  K := 0 | подсчет количества вхождений Amax
  нц для i от 1 до N
    нц для j от 1 до M
      если A[i, j] = Amax
        то K := K+1
      все
    кц
  кц
кон

Исполнение алгоритма
i j A[i,j]>Amax Amax
 
1
 
 
2
 
1
2
3
1
2
3
 
-
+
+
-
-
-
1
 
2
5
 
 
 
 
(продолжение)
i j A[i,j]=Amax K
1
 
 
2
1
2
3
1
2
3
-
-
+
+
-
+
0
 
1
2
 
3
 
Блок-схема (фрагмент) 


 Turbo Pascal
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.
 
QBasic

CLS : INPUT "Количество строк - ", N
INPUT "Количество столбцов - ", M
DIM A(N, M) 'Резервирование памяти для матрицы
FOR i = 1 TO N 'Ввод матрицы
  FOR j = 1 TO M
    PRINT "A(" ; i ; ", " ; j ; ") = " ; : INPUT A(i, j)
  NEXT j
NEXT i

CLS : PRINT "Матрица А"
FOR i = 1 TO N 'Вывод матрицы
  FOR j = 1 TO M
    PRINT A(i, j) ;
  NEXT j
  PRINT
NEXT i : PRINT

Amax = A(1, 1) 'Поиск максимального элемента
FOR i = 1 TO N
  FOR j = 1 TO M
    IF
A(i, j) > Amax THEN Amax = A(i, j)
  NEXT j
NEXT i

K = 0 'Подсчет числа вхождений Amax
FOR i = 1 TO N
  FOR j = 1 TO M
    IF
A(i, j) = Amax THEN K = K + 1
  NEXT j
NEXT i

PRINT "Максимальное число " ; Amax ;
PRINT " встречается " ; K ; " раз(a)"
END

Другие записи

10.06.2016. Пример 3.3. В заданной матрице A(N, M) поменять местами строки с номерами P и Q (1 <= P <= N, 1 <= Q <= N).
Тест Данные Результат N=3 M=3 P=1 Q=3  Школьный АЯ алг Поменять местами строки (арг цел N, M, арг цел P, Q,                              арг рез вещ таб А[1:N, 1:M] ) нач…
10.06.2016. Пример 3.4. Элементы заданного числового массива a1, a2, ..., aN упорядочить по возрастанию.
Тест Данные Результат N=4 A=(5, 2, 7, 1) A=(1, 2, 5, 7)   Школьный АЯ  алг Возрастание(арг цел N, арг рез                  вещ таб A[1:N]) нач цел i, j, вещ Tmp   нц…
10.06.2016. Пример 3.5. В массиве A(N, N) вычислить две суммы элементов, расположенных ниже и выше главной диагонали.
Тест Данные Результат N=3  S1=6  S2=9 Школьный АЯ алг Две суммы (арг цел N, арг вещ таб A[1:N, 1:N], рез вещ S1, S2)   надо | S1 = сумма элементов ниже главной диагонали       …