С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 02.05.2013
Сообщений: 37

Написать подпрограмму умножение двух матриц (с пояснением)

21.11.2013, 20:31. Показов 3655. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написать подпрограмму умножение двух матриц (с пояснением) Заранее спасибо)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.11.2013, 20:31
Ответы с готовыми решениями:

Написать программу, реализующую умножение двух матриц
Уважаемые форумчане, горю на контрольной, времени совсем уже нет, сегодня сдаваться идти... Может есть у кого готовые решения для консоли,...

Написать программу, которая выполняет умножение двух матриц
Написать программу, которая выполняет умножение двух матриц (матрицы не квадратные).

Умножение двух матриц
Есть 2 матрицы: A и B A: A= new int; int k = size + 1; for (int i = 0; i < size; ++i) { for...

1
37 / 31 / 13
Регистрация: 08.12.2012
Сообщений: 810
03.05.2014, 15:01
Лучший ответ Сообщение было отмечено temacska1 как решение

Решение

Может это на что сгодится
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
program Matrix_Umnoj; uses Crt;
  const n = 5;//задает максимальное количество строк и столбцов для всех матриц в проге
type
   nm = 1..n;
   my = array[nm,nm]of integer;
   mmy = array[nm,nm]of integer;
   myy = array[nm,nm]of integer;
var m: my;mm: mmy;//m,mm переменные для умножаемых матриц
   nn: myy;// nn переменная для матрицы с результатами умножения(результирующей)
   n1,m1,n2,m2 : byte;//переменные для ввода кол-ва строк и столбцов матриц m и mm(тех которые будем умножать)
   f: Boolean;
//procedure LongMatrix проверка ввода строк и столбов
//матриц m и mm чтобы в пределах const n =
procedure LongMatrix(var n1,m1,n2,m2: byte);
begin
  repeat
    write('Введите число строк первой матрицы не более ',n,' -> ');
    readln(n1);
  until (0 < n1) and (n1 <= 10);
    writeln;//пустая строка на экране между правильно введенными данными
  repeat
    write('Введите число столбцов первой матрицы не более ',n,' -> ');
    readln(m1);
  until (0 < m1) and (m1 <= n);
     writeln;
   repeat
     write('Введите число строк второй матрицы не более ',n,' -> ');
     readln(n2);
   until (0 < n2) and (n2 <= 10);
      writeln;
   repeat
     write('Введите число столбцов второй матрицы не более ',n,' -> ');
     readln(m2);
   until (0 < m2) and (m2 <= n);
     writeln;
end;//LongMatrix
//function Simile равно ли кол-во столбов m
//кол-ву строк mm если нет,то умножать нельзя и f = false
function Simile(m1,n2: byte):Boolean;
begin
  Simile:= m1 = n2;
end;//Simile
//заполняем матрицы m и mm случайными числами
procedure zap(var m: my;var mm: mmy);
  var i,j: byte;
begin randomize;
  for i:=1 to n1 do
   for j:=1 to m1 do m[i,j]:= random(10);
  for i:=1 to n2 do
   for j:=1 to m2 do mm[i,j]:= random(10);
end;//zap
//выводим обе заполненные матрицы(m и mm) на экран
procedure output(m: my;c,d: byte);
  var i,j: byte;
begin
  for i:=1 to c do begin
   for j:=1 to d do  write(m[i,j],' ':3);
    writeln;end;//for i
end;//output
procedure output(mm: mmy;c,d: byte);
  var i,j: byte;
begin
  for i:=1 to c do begin
   for j:=1 to d do  write(mm[i,j],' ':3);
    writeln;end;//for i
end;//output
//procedure Action умножаем m * mm и
//результат заносим в матрицу nn
procedure Action(var m: my;var mm: mmy;
var nn: myy);
 var i,j,l: byte;
begin
  for i:=1 to n1 do //в nn строки = n1
   for j:=1 to m2 do //в nn кол-во столбцов = m2
    for l:=1 to m2 do
{вначале умножаем первое число в строке 1 матрицы
на каждое значение в 1-й строке 2-й матрицы и заносим в nn}
     if j = 1 then nn[i,l]:= m[i,j]*mm[j,l] else
{2 и т.д.числа в строке 1-й матрицы на числа во 2-й и т.д.
строках 2-й матрицы и плюсуем их к обрабатываемой строке nn[i,}
      nn[i,l]:= nn[i,l] + m[i,j]*mm[j,l];//проверить nn[j,l +
end;//Action
//выводим матрицу nn на экран
procedure output(nn: myy;c,d: byte);
 var i, j : byte;
begin
  for i:=1 to c do begin
   for j:=1 to d do
     write(nn[i,j],' ':3);
     writeln;
  end;//for i
end;//output
begin ClrScr;//ОСНОВНОЕ ТЕЛО ПРОГРАММЫ
//procedure LongMatrix ввод и проверка строк и столбов умножаемых массивов
LongMatrix(n1,m1,n2,m2);
f:= Simile(m1,n2); {кол-во столбов Массива1(m
  должно быть = кол-ву строк Массива2 mm}
if f then begin
 zap(m,mm);//если f = true заполняем массивы
 output(m,n1,m1);writeln;//выводим обе
 output(mm,n2,m2);writeln;//матрицы
   FillChar(nn,SizeOf(nn),0);//инициация массива nn нулями
 Action(m,mm,nn);//здесь умножаем m * mm
 //результаты заносим в массив nn
  writeln('вывод матрицы nn');
  writeln;
 output(nn,n1,m2);end//вывод результата умножения
//матриц m * mm
  else
 writeln('Матрицы умножать нельзя');
 writeln('нажмите любую клавишу');
 readkey;
end.//begin
{НАГЛЯДНОЕ ПОСОБИЕ УМНОЖЕНИЯ МАТРИЦ
 1 2             А B C
 3 4  уножаем на D E F
 5 6
 вначале умножаем 1 на каждое значение
 первой строки
 второй матрицы и заносим эти значения
 в результирующую матрицу
 
 1*A 1*B 1*C
 
 затем умножаем 2 на каждое значение
 второй строки второй матрицы и плюсуем
 этот результат в первой строке
 
 1*A+2*D 1*B+2*E 1*C+2*F -это полученные
 
 значения первой строки в результирующей
 матрице.Первая строка результирующей
 матрицы заполнена.Внешний цикл становится
 равным цифре 2 - это переход ко 2 строке
 первой матрицы.
 Теперь первое значение во 2-й строке
 первой матрицы 3 ,умножаем на каждое значение
 в первой строке 2-й матрицы то есть ,те же
 действия что и вначале ,только теперь работает
 2-я строка 1-й матрицы и снова все значения
 2-й матрицы...итак
 
 3*A 3*B 3*C
 
 далее
 
 3*A+4*D 3*B+4*E 3*C+4*F
 
 получились 2 строки результирующей матрицы
 
  1*A+2*D 1*B+2*E 1*C+2*F
  3*A+4*D 3*B+4*E 3*C+4*F
 
  те же действия с третьей строкой 1-й матрицы и
  результат
 
  1*A+2*D 1*B+2*E 1*C+2*F
  3*A+4*D 3*B+4*E 3*C+4*F
  5*A+6*D 5*B+6*E 5*C+6*F}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.05.2014, 15:01
Помогаю со студенческими работами здесь

Умножение двух матриц А и Б
Хай гайс!!! У меня через 4 часа дедлайн-_- срочно нужна ваша помощь, я не успею физически, если будет время помогите решить задачу....

Умножение двух матриц на С++
Всем доброе время суток! с днём Математиков ВАС, коллеги) Мне надо реализовать умножение 2 матриц размерности NxM1, M1xN...

Умножение двух матриц
Посмотрите, рабоает ли программа, которая должна умножить две матрицы. Буду очень благодарен за исправление... У меня ошибка где-то у...

Умножение двух матриц
Помогите пожалуйста

Умножение двух матриц
Создать модуль, содержащий процедуры или функции: − умножение двух матриц; − вычисление следа матрицы; − меняет местами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru