Пусть дана вещественная матрица размером 7х7, все элементы которой различны. Найдите скалярное произведение строки с наибольшим элементом матрицы и столбца с наименьшим элементом — Pascal(Паскаль)

const n = 3;
type TMatr = array[1..n, 1..n] of real;
var A: Tmatr;
    minRow, minCol, maxRow, MaxCol : integer;
    s: real;
{=========================================}
procedure VvodMatr(var A: TMatr);
var i, j: integer;
begin writeln('Vvedite matricy postrochno: ');
        for i:=1 to n do
        begin for j:=1 to n do read(a[i,j]);
                readln;
        end;
end;
{-----------------------------------}
{ Poisk koordinat Min i Max elementa matrici }
procedure FindMinMax(A: TMatr; var MinRow, MinCol, MaxRow, MaxCol: integer);
var i, j: integer;
begin MinRow := 1; MinCol := 1;
        MaxRow := 1; MaxCol := 1;
        for i:=1 to n do
          for j:=1 to n do
          begin
                   if A[i,j]>A[MaxRow, MaxCol] then begin MaxRow := i; MaxCol := j;
                                                                end;
                   if A[i,j]<A[MinRow, MinCol] then begin MinRow := i; MinCol := j;
                                                                end;
 
          end;
end;
{----------------------------------------------}
{Умножение i строки на j столбец - если конечно я правильно помню смысл скал произв-я}
function SkMult(A: TMatr; i, j: integer): real;
var k: integer; SkM: real;
begin
   SkM := 0;
   for k:=1 to n do
          SkM := SkM + A[i,k]*A[k,j];
   SkMult := SkM;
end;
 
begin
  VvodMatr(A);
  FindMinMax(A,MinRow, MinCol, MaxRow, MaxCol);
  writeln('Max el: A[', MaxRow,',',MaxCol,'] = ', A[MaxRow,MaxCol]:10:2);
  writeln('Min el: A[', MinRow,',',MinCol,'] = ', A[MinRow,MinCol]:10:2);
 
  s := SkMult(A, MaxRow, MinCol);
  writeln(' Skal proizv ', s:10:2); readln;
end.

Leave a Comment

78 − = 72