Задана квадратная матрица A размером N x N (N<=10), состоящая из действительных элементов. Найти максимальное из чисел, встречающееся в данной матрице более одного раза. - Pascal(Паскаль)

program p1714;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
const
  Rows = 5;      // Кол-во строк матрицы
  Cols = 6;      // Кол-во столбцов матрицы
  Limit = 100;   // 0..(Limit - 1) - интервал значений элементов матрицы
 
type
  TMatrix = array[0..Rows - 1, 0..Cols - 1] of Integer; // Тип матрицы
  TMeaning = array[0..Limit - 1] of Integer; // Количество встречающихся значений
 
var
  i, j: Integer;
  M: TMatrix;
  Max: Integer; // Максимальный элемент
  V: TMeaning;  // Вектор встречающихся значений
 
begin
  // Формирование случайной матрицы и вывод на экран,
  // а также формирование количественного вектора
  Randomize();
  FillChar(V, SizeOf(V), 0);
 
  for i:= 0 to Rows - 1 do
    begin
      for j:= 0 to Cols - 1 do
        begin
          M[i, j]:= Random(Limit);
          Inc(V[M[i, j]]);
          Write(' ', M[i, j]: 3);
        end;
      WriteLn;
    end;
 
  // Поиск максимального элемента, встречающегося больше 1 раза
  Max:= -1;
  for i:= 0 to Rows - 1 do
    for j:= 0 to Cols - 1 do
      if (M[i, j] > Max) and (V[M[i, j]] > 1)
        then Max:= M[i, j];
 
  // Вывод максимального элемента и количества раз его присутствия в матрице
  if Max <> -1
    then WriteLn('  Max = ', Max, ' (', V[Max], ' times).')
    else WriteLn('  Not found.'); // Все элементы разные
 
  Write('  Press Enter...');
  ReadLn;
end.

Leave a Comment

− 2 = 4