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

uses crt;
const nmax=20;{максимальный размер матрицы}
type mas=array[1..nmax] of real;{массив - строка матрицы}
     matr=array[1..nmax] of mas;{матрица - массив строк}
function MaxStr(m:matr;n:byte;var mx:real):byte;{нахождение макс и номера строки}
var i,j,imx:byte;
begin
imx:=1;
mx:=m[1,1];
for i:=1 to n do
for j:=1 to n do
if m[i,j]>mx then
 begin
  mx:=m[i,j];
  imx:=i;
 end;
MaxStr:=imx;
end;
function Scal(v:mas;n:byte):real;{вычисление произведения}
var i:byte;
    p:real;
begin
p:=1;
for i:=1 to n do
p:=p*v[i];
Scal:=p;
end;
var a:matr;
    n,i,j,k:byte;
    mx,s:real;
begin
clrscr;
randomize;
repeat
write('Размер матрицы=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=10*random;
     write(a[i,j]:5:2);
    end;
   writeln;
 end;
writeln;
k:=MaxStr(a,n,mx);
writeln('Наибольший элемент находится в строке ',k,' = ',mx:0:2);
write('Скалярное произведение=',Scal(a[k],n):0:2);
readln
end.

Leave a Comment

+ 34 = 44