Для матрицы С (8,5) вычислить сумму элементов каждой строки.

vovchik12

Написать программу,которая решает задачу с применением подпрограмм типа function: для матриц А (8,10), B (10,5) вычислить произведение C (8,5). Для матрицы С (8,5) вычислить сумму элементов каждой строки. Результат напечатать. Матрицы А, В, С - напечатать в общепринятом виде.
6 ответов

vovchik12

Вам нужны функции которые выдают в качестве ответа матрицу? Ну просто в ТурбоПаскале такое вроде не компилируется.


vovchik12

Нет! Скорее нужно вичисление матриц оформить в процедуре! а точнее в функции!


vovchik12

Но какое именно вычисление? Вам нужно произведение первой и второй матрицы. Функция не может выводить в качестве ответа матрицу, значит нужна процедура, которая это произведение записывает в третью матрицу. Но тогда зачем функция? Переформулируйте пожалуйста задачу.


vovchik12

Ви прави! мне нужна процедура которая запишет произведение в третью матрицу !


vovchik12

uses crt;
 
var
a: array [1..8,1..10] of integer;
b: array [1..10,1..5] of integer;
c: array [1..8,1..5] of integer;
 
{-------------------------------------------------------------}
procedure fill;
var i,j: integer;
begin
writeln('Matrix A:');
 
for i:=1 to 8 do
 begin
 for j:=1 to 10 do
  begin
  a[i,j]:=random(50);
  write(a[i,j]:5);
  end;
 writeln;
 end;
 
readkey;
writeln('Matrix B:');
 
for i:=1 to 10 do
 begin
 for j:=1 to 5 do
  begin
  b[i,j]:=random(50);
  write(b[i,j]:5);
  end;
 writeln;
 end;
readkey;
end;
{-------------------------------------------------------------}
procedure count;
var i,j,sum: integer;
begin
writeln('Matrix C:');
for i:=1 to 8 do
 begin
 sum:=0;
 for j:=1 to 5 do
  begin
  c[i,j]:=a[i,j]*b[i,j];
  write(c[i,j]:5);
  sum:=sum + c[i,j];
  end;
 writeln('  Sum = ',sum);
 end;
end;
{-------------------------------------------------------------}
 
begin clrscr; randomize;
fill;
count;
readkey; end.
Впрочем, можно было несколько эффективней... Ну ладно уже, можно и так)


vovchik12

Большое спасибо Вам!