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

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

21.11.2013, 20:31. Показов 3703. Ответов 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
Сообщений: 815
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
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru