7.Найти
произведение двух квадратных матриц А(3*3) и В(3*3).
9.Дан массив
А(3*4). Найти номера всех максимальных элементов в каждой строке.
10.Дан массив
А(3*4). Найти в каждой строке сумму элементов, кратных 3.
11.Дан массив
А(3*4). Найти количество элементов в каждой строке, больших среднего
арифметического элементов данной строки.
паскаль
Answers & Comments
Verified answer
7. Произведение двух матриц - это матрица, каждый член которой естьc(i, j) = Summa(1, k) a(i, k)*b(k, j)
То есть надо три цикла друг в друге, а внутри эта формула.
for i:=1 to 3 do
begin
for j:=1 to 3 do
begin
C[i,j]:=0;
for k:=1 to 3 do C[i,j] := C[i,j] + A[i,k]*B[k,j];
end;
end;
9. Номера максимальных элементов в каждой строке А(3, 4) сами образуют
массив B(3). Цикл такой:
for i:=1 to 3 do
begin
Max = A[i, 1];
for j:= 1 to 4 do
if A[i,j] > Max then Max := A[i,j]; B[i]:= j;
end;
10. Тоже самое, как в 9
for i:=1 to 3 do
begin
B[i] = 0;
for j:= 1 to 4 do if (A[i,j] mod 3 = 0) then B[i] := B[i] + A[i,j];
end;
11. Сначала заполним массив B[i] средними ариф. по строкам
for i:=1 to 3 do
begin
B[i] = 0;
for j:= 1 to 4 do B[i] := B[i] + A[i,j];
B[i] := B[i] / 4;
end;
А потом найдем в каждой строке A[i,j], сколько элементов больше B[i].
Посчитаем их в счетчике с и запишем обратно в массив B[i].
for i:=1 to 3 do
begin
c:=0;
for j:= 1 to 4 do if A[i,j] > B[i] then c:=c+1;
B[i] := c;
end;
USES crt;
Const n=3;
Const m=3;
Var
A,B,C: Array [1..n, 1..m] Of Integer;
i,j,k: Integer;
S:Integer;
Begin
Writeln('A:');
For i:=1 to n do
begin
for j:=1 to m do
begin
A[i,j]:=random(n);
Write(' ',A[i,j]);
end;
Writeln;
end;
Writeln('B:');
For i:=1 to n do
begin
for j:=1 to m do
begin
B[i,j]:=random(n);
Write(' ',B[i,j]);
end;
Writeln;
end;
For i := 1 To n Do
Begin
For j := 1 To m Do
Begin
S:= 0;
For k:=1 To n Do
S:= S + A[i,k] * B[k,j];
C[i, j] := S;
End;End;
WriteLn ('C:');
For i := 1 To n Do
Begin
For j := 1 To m Do
begin
Write (' ',C[i, j] );
End;
WriteLn;
End;
ReadLn;
End.
USES crt;
Const n=3;
Const m=4;
var A:array[1..n,1..m] of integer;
i,j,p,s:integer;
BEGIN
Clrscr;
For i:=1 to n do
begin
for j:=1 to m do
begin
A[i,j]:=random(10);
Write(' ',A[i,j]:2)
end;
Writeln;end;
Writeln;
For i:=1 to n do
begin
S:=0;
for j:=1 to m do
if A[i,j] mod 3=0 then
begin
S:=S+A[i,j];
end;
Writeln(' Symma v stro4ke ',i,': ',s);
end;END.