IPB

Здравствуйте, гость ( Вход | Регистрация )

> массивы в паскале, перемножение матриц
otherside
сообщение 1.5.2008, 10:49
Сообщение #1


Студент
**

Группа: Продвинутые
Сообщений: 98
Регистрация: 29.2.2008
Город: красноярск
Учебное заведение: КрижтИрГупс
Вы: студент



пдскажите пожалуйста как написать программу перемножения двух произвольных матриц? размер матриц запрашивается с клавиатуры. на экране должно появится:
1)запрос размера матриц
2)две заполненные матрицы
3 третья матрица-результат перемножения
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
tig81
сообщение 1.5.2008, 10:55
Сообщение #2


Академик
********

Группа: Преподаватели
Сообщений: 15 617
Регистрация: 15.12.2007
Город: Украина, Запорожье
Учебное заведение: ЗНУ
Вы: преподаватель



Цитата(otherside @ 1.5.2008, 13:49) *

пдскажите пожалуйста как написать программу перемножения двух произвольных матриц? размер матриц запрашивается с клавиатуры. на экране должно появится:
1)запрос размера матриц
2)две заполненные матрицы
3 третья матрица-результат перемножения

Пусть заданы две матрицы: А размера mxn и B размера nxk. Тогда элементы матрицы С=АВ, вычисляются по формуле: c[i,j]=sum(a[i,t]*b[t,j],t=1..n).
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
otherside
сообщение 4.5.2008, 10:33
Сообщение #3


Студент
**

Группа: Продвинутые
Сообщений: 98
Регистрация: 29.2.2008
Город: красноярск
Учебное заведение: КрижтИрГупс
Вы: студент



вот написала программу... проверьте пожалуйста так или нет?
program five;
var
a:array[1..100,1..100] of integer; {можно было объединить a,b,c:array[1..100,1..100] of integer;}
b:array[1..100,1..100] of integer;
c:array[1..100,1..100] of integer;
m,k,n,i,j,m2,n2,S:integer;
begin
randomize;
write ('введите n= ');
read(n);
write ('введите m= ');
read(m);
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(20)-10; {наверное так}
writeln('матрица а=');
for i:=1 to n do
begin
for j:=1 to m do
write(round(a[i,j]),' '); {Зачем округляете, матрица целочисленная}
writeln( );
end;
write('введите n2= ');
read(n2);
write('введите m2= ');
read(m2);
for i:=1 to n2 do
for j:=1 to m2 do
b[i,j]:=random(20)-10;
writeln('матрица b=');
for i:=1 to n2 do
begin
for j:=1 to m2 do
write(round(b[i,j]),' ');
writeln( );
end;
if m=n2 then
begin
for i:=1 to n do
for j:=1 to m2 do
begin
S:=0;
for k:=1 to m do
S:=S+a[i,k]*b[k,j];
c[i,j]:=S;
end;
writeln('матрица c=a*b');
for i:=1 to n do
begin
for j:=1 to m2 do
write(round(c[i,j]),' ');
writeln( );
end;
end
else

write('перемножение невозможно');
end.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 27.5.2025, 20:46

Книжки в помощь: "Сборник заданий по высшей математике" Кузнецов Л.А., "Сборник заданий по высшей математике" Чудесенко В.Ф., "Индивидуальные задания по высшей математике" Рябушко А.П., и другие.




Зеркало сайта Решебник.Ру - reshebnik.org.ru