Дан квадратный массив. Найти строку с минимальной суммой элементов, и строку с максимальной. Поэлементно перемножить эти строки, создав одномерный массив B — Pascal(Паскаль)

var
  a: array[1..100, 1..100] of integer;
  b: array[1..100] of integer;
  i, j, min, max, mini, maxi, sum, k: integer;
 
begin
  for i := 1 to 5 do 
  begin
    for j := 1 to 5 do
      a[i, j] := random(15);
  end;
  writeln('исходная матрица');
  for i := 1 to 5 do 
  begin
    for j := 1 to 5 do
      write(a[i, j], ' ');
    writeln;
  end;
  min := 10000;
  for i := 1 to 5 do 
  begin
    sum:=0;
    k := i;
    for j := 1 to 5 do 
    begin
      sum := sum + a[k, j];
    end;
    if sum < min then begin
      min := sum;
      mini := k;
    end;
  end;
  sum := 0;
  max := -10000;
  for i := 1 to 5 do 
  begin
    k := i;
    for j := 1 to 5 do
      sum := sum + a[k, j];
    if sum > max then begin
      max := sum;
      maxi := k;
    end;
    sum := 0;
  end;
  writeln('минимальная сумма строки  ', min,' строка ', mini);
  writeln('максимальная сумма строки  ', max,' строка ',maxi);
  k := 1;
  while (k <= 5) do 
  begin
    b[k] := a[mini, k] * a[maxi, k];
    inc(k);
  end;
  for i := 1 to 5 do 
    write(b[i], ' ');
end.

Следующий вариант

const n=5;
var  a:array[1..n,1..n]of integer;
     b:array[1..n]of integer;
     i,j,imax,imin:integer;
 
procedure nmax_min;
var tmp:array[1..n]of integer;
   s,im:integer;
begin
for i:=1 to n do
begin
    s:=0;
    for j:=1 to n do
    s:=s+a[i,j];
    tmp[i]:=s;
end;
imax:=1; imin:=1;
for i:=2 to n do
begin
    if tmp[i]>tmp[imax] then imax:=i;
    if tmp[i]<tmp[imin] then imin:=i;
end;
end;
 
 
begin
randomize;
for i:=1 to n do
begin
    for j:=1 to n do
    begin
        a[i,j]:=random(10)-5;
        write(a[i,j]:4);
    end;
    writeln;
end;
nmax_min;
writeln('Строка с максимальной суммой элементов= ',imax);
writeln('Строка с минимальной суммой элементов= ',imin);
for j:=1 to n do
begin
    b[j]:=a[imax,j]*a[imin,j];
    write(b[j]:4);
end;
end.

Leave a Comment

2 + 2 =