Консультация № 145283
28.09.2008, 12:59
0.00 руб.
0 2 1
Уважвемые Эксперты! Здравствуйте!
Пожалуйста,помогите составить программу умножения транспонированной матрицы С на квадратную матрицу В.
Спасибо заранее....
Очень срочно...

Обсуждение

давно
Профессор
401888
1232
28.09.2008, 13:03
общий
Матрица С из чего траспонирована? Или нужно сначала транспонировать C, а потом умножить на В?
давно
Профессор
401888
1232
29.09.2008, 12:17
общий
это ответ
Здравствуйте, Olimpia!
Видимо мой вопрос в мини-форуме озадачил Вас. Не берите в голову. Решение задачи в приложении. Объяснять как матрицы транспонируются и перемножаются не буду. Это очень хорошо изложено в учебниках по математике, причем специалистами. Я покажу Вам как этот математический процесс может быть записан на языке Паскаля в виде программы, которая в свою очередь все считает за Вас.

Приложение:
uses crt; {модуль для работы с экраном и клавиатурой}
const n =5;{размерность матриц}
var c,ct,b,a:array[1..n,1..n]of integer;{переменные-матрицы}
i,j,k:integer; {счетчики циклов}
begin
clrscr; {очищаем экран}
randomize; {генерация случайных чисел}
writeln('Матрица С:');
for i:= 1 to n do
begin
for j:=1 to n do
begin
c[i,j]:=random(10)-3; {элементы матрицы-случайные числа из инт.(-3,7)}
write(c[i,j]:4); {выводим построчно на экран}
end;
writeln;{новая строка}
end;
writeln('Траспонированная матрица С:');
for i:= 1 to n do
begin
for j:=1 to n do
begin
ct[i,j]:=c[j,i];
write(ct[i,j]:4);
end;
writeln;
end;
writeln('Матрица В:');
for i:= 1 to n do
begin
for j:=1 to n do
begin
b[i,j]:=random(10)-3;
write(b[i,j]:4);
end;
writeln;
end;
{Умножение матриц}
for k:=1 to n do
for j:=1 to n do
begin
a[k,j]:=0;
for i:=1 to n do
begin
a[k,j]:=a[k,j]+ct[k,i]*b[i,j]; {сумма произведений строки на соответствующий столбец}
end;
end;
writeln('Произведение матриц:');
for i:= 1 to n do
begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln
end.
Форма ответа