Дана целочисленная матрица A(N, M). Определить, встречается ли заданное целое K среди максимальных элементов столбцов этой матрицы — Pascal(Паскаль)

Program Checking; 
  Uses Crt; 
  Var A          : Array[1..10, 1..10] of Integer; 
      N, M, i, j : Integer; 
      K          : Integer; {заданное число} 
      JMax       : Integer; {максимальный элемент столбца} 
      Flag       : Boolean; 
{---------------------------------------------------} 
Procedure InputOutput; {описание процедуры ввода-вывода} 
 Begin 
  ClrScr; 
  Write('Введите целое K = '); ReadLn(K); WriteLn; 
  WriteLn('Введите целочисленную матрицу А'); 
  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; ClrScr;
  WriteLn('Исходная матрица :'); WriteLn; 
  For i := 1 to N do 
    begin 
      For j := 1 to M do Write(A[i, j] : 4); 
      WriteLn 
    end; WriteLn; 
End; { of InputOutput } 
{--------------------------------------------} 
Procedure YesOrNot(Var Flag:Boolean); {описание процедуры решения задачи} 
 Begin 
  Flag:=FALSE; j:=1; 
  While (j<=M) and not Flag do {цикл по столбцам с прерыванием} 
    begin JMax:=A[1, j]; 
      For i := 2 to N do {цикл нахождения JMax} 
        If A[i, j]>JMax then JMax:=A[i, j]; 
      If K=JMax then Flag:=TRUE else j:=j+1 {условие прерывания} 
    end; 
 End; 
{--------------------------------------------} 
BEGIN 
  InputOutput;    {вызов процедуры ввода-вывода исходных данных} 
  YesOrNot(Flag); {вызов процедуры решения задачи}
  Write('О т в е т : число ', K ); 
  If Flag then Write(' встречается')  
          else Write(' не встречается'); 
  WriteLn(' среди максимальных элементов столбцов матрицы'); 
  ReadLn 
END.

Leave a Comment

85 − = 84