Cоставить алгоритм и программу для: 1)заполнения лвумерного массива (6x4) произвольными значениями и вывода его на экран! 2)подсчета произведения элементов по строкам и вывода на экран номеров строк и соответствующих произведений элементов! 3)нахождения строки с максимальным произведением элементов и вывода на экран ее номера (номеров) и произведения элементов! 4) выделения 1-го столбца в отдельный массив и сортировки его по возврастанию методом прямого выбора
m = 6;
n = 4;
var
a: array[1..m, 1..n] of integer;
b: array[1..m] of integer;
i, j, p, pmax, imax: integer;
flag: boolean;
begin
{1}
Randomize;
writeln('Исходный массив');
for i := 1 to m do
begin
for j := 1 to n do
begin
a[i, j] := Random(81) - 40;
write(a[i, j]:4)
end;
writeln
end;
{2}
writeln('Произведения построчно');
for i := 1 to m do
begin
p := 1;
for j := 1 to n do p := p * a[i, j];
writeln(i, ': ', p:9)
end;
{3}
pmax := -MaxInt;
writeln('Максимальное построчное произведение');
for i := 1 to m do
begin
p := 1;
for j := 1 to n do p := p * a[i, j];
if pmax < p then
begin
pmax := p;
imax := i;
end
end;
writeln(imax, ': ', pmax:9);
{4}
for i := 1 to m do b[i] := a[i, 1];
for i := 2 to m do
begin
p := b[i];
j := i - 1;
flag := False;
while (j > 0) and (not flag) do
if p < b[j] then
begin
b[j + 1] := b[j];
j := j - 1
end
else flag := True;
b[j + 1] := p
end;
writeln('Отсортированный первый столбец');
for i := 1 to m do writeln(b[i]:3)
end.
Тестовое решение:
Исходный массив
-27 4 3 14
15 40 -39 -27
40 -40 -40 -24
-38 7 18 1
17 27 29 -9
10 -32 38 0
Произведения построчно
1: -4536
2: 631800
3: -1536000
4: -4788
5: -119799
6: 0
Максимальное построчное произведение
2: 631800
Отсортированный первый столбец
-38
-27
10
15
17
40