Если среди диагональных элементов матрицы есть не менее двух, содержащих цифру 5 и не содержащих цифру 3, заменить наибольшие элементы строк на произведения элементов этих строк — Pascal(Паскаль)

Дана целочисленная матрица {Aij}i=1…n;j=1..n , n меньше или равно 100.

program PascalGuru;

uses crt;

type
  matr = array [1 .. 100, 1 .. 100] of integer;

var
  a, x: matr;
  i, j, k, n: integer;

Function Chislo(x: integer): integer;
var
  m, l: integer;
begin
  x := abs(x);
  m := x div 10;
  l := x mod 10;
  if ((m = 5) or (l = 5)) and (m <> 3) and (l <> 3) then
    Chislo := 1
  else
    Chislo := 0;
end;

Procedure max(var x: matr);
var
  max1, l: integer;
  p: longint;
begin
  for i := 1 to n do
  begin
    max1 := x[i, 1];
    p := 1;
    l := 1;
    for j := 1 to n do
    begin
      p := p * x[i, j];
      if max1 < x[i, j] then
      begin
        max1 := x[i, j];
        l := j;
      end;
    end;
    x[i, l] := p;
  end;
end;

begin
  clrscr;
  writeln('введите n');
  readln(n);
  for i := 1 to n do
    for j := 1 to n do
    begin
      read(a[i, j]);
    end;
  writeln;
  writeln('исходная матрица');
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
    writeln;
  end;
  for i := 1 to n do
    if Chislo(a[i, i]) = 1 then
      k := k + 1;
  if k >= 2 then
    max(a);
  writeln('результат');
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(a[i, j]:5);
    writeln;
  end;
  readln;

end.

Leave a Comment

68 − 63 =