Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
6 / 7 / 4
Регистрация: 17.09.2013
Сообщений: 337

Умножение матриц, исправить код

18.03.2014, 20:44. Показов 608. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создан класс для работы с матрицами. Пытался реализовать умножение матриц, но результат отображается неправильно. Помогите исправить ошибку.
C++
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
#include <iostream>
#include <conio.h>
using namespace std;
 
 
class Matrix 
{
private:
     int value[2][2]; //Äâóìåðíûé ìàññèâ äëÿ ìàòðèöû ( ðàçìåð 3õ3, íî áóäåì èñïîëüçîâàòü ìàòðèöû 2õ2 )
public:
     void Create_Matrix(); // ôóíêöèÿ çàïîëíåíèÿ ìàòðèöû ñëó÷àéíûìè ÷èñëàìè
     void Print_Matrix(); // ôóíêöèÿ ðàñïå÷àòêè ìàòðèöû
     Matrix operator+(const Matrix &matrix); //îïåðàòîð ñëîæåíèÿ ìàòðèö (ïåðåãðóçêà îïåðàòîðîâ)
     Matrix operator*(Matrix &matrix);
 
};
 
void Matrix::Create_Matrix() //çàïîëíåíÿåì ìàòðèöó ñëó÷àéíûìè ÷èñëàìè
{
     for(int i = 0; i < 2; i++ ) //Öèêë ïî ñòðîêàì
         for(int j = 0; j < 2; j++ ) //ïî ñòîëáöàì
             value[i][j]=rand()%10; //Çàäàåì ñëó÷àéíûå çíà÷åíèÿ îò 0 äî 10
}
 
void Matrix::Print_Matrix() //Ïå÷àòàåì ìàòðèöó
{
     cout << "__________\n";
     for(int i = 0; i < 2; i++ ) //Öèêë ïî ñòðîêàì
     {
         for(int j = 0; j < 2; j++ ) //Ïî ñòîëáöàì
         {
             cout.width(4); //Óñòàíàâëèâàåì øèðèíó ìåæäó âûâîäîì òåêóùåãî çíà÷åíèÿ 
             cout << value[i][j]; //Âûâîäèì òåêóùåå çíà÷åíèå
         }
     cout << "\n"; //Ïåðåíîñèì âûâîä íà íîâóþ ñòðî÷êó (äëÿ êðàñîòû)
     }
cout << "__________\n";
}
 
 Matrix Matrix::operator+ (const Matrix &matrix) //Îïåðàòîð ñëîæåíèÿ
{
       Matrix temp(*this); //Ñîçäàåì ìàòðèöó temp
       for (int i = 0; i <2; i++)
         for (int j = 0; j <2; j++)
             temp.value[i][j] = value[i][j] + matrix.value[i][j]; //Çàïîìèíàåì â ìàòðèöå temp ñóììó äâóõ äðóãèõ ìàòðèö
return temp; //Âîçâðàùàåì ìàòðèöó temp
}
Matrix Matrix::operator*(Matrix &matrix){
Matrix temp(*this);
for(int i=0; i < 2; i++)
 for(int j=0; j < 2; j++)
 for(int k=0; k < 2; k++)
 temp.value[i][j]+=value[i][k]*matrix.value[k][j];
return temp;}
   
int main () 
{
     Matrix a,b,c; //Îáúÿâëÿåì ìàòðèöû a,b,c
     a.Create_Matrix(); //Çàïîëíÿåì ñëó÷àéíûìè ÷èñëàìè ìàòðèöó a
     cout << "Matrix A: " <<endl;
     a.Print_Matrix(); //Ïå÷àòàåì
     b.Create_Matrix(); //Çàïîëíÿåì ñëó÷àéíûìè ÷èñëàìè ìàòðèöó b
     cout << "Matrix B: " <<endl;
     b.Print_Matrix(); //Ïå÷àòàåì
     c=a+b; // Ñêëàäûâàåì ìàòðèöû a è b
     cout << "Matrix A+B: "<<endl;
     c.Print_Matrix(); //Ïå÷àòàåì ìàòðèöó c
     c = a * b;
     c.Print_Matrix();
     getch();
     return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2014, 20:44
Ответы с готовыми решениями:

Умножение матриц. Исправить ошибку
Доброго времени суток. В университете получил задание реализовать программу умножающую две матрицы размером NxM и MxL и выводящую...

Исправить ошибку (умножение двух матриц)
#include &lt;iostream&gt; #include &lt;windows.h&gt; using namespace std; void main() { SetConsoleOutputCP(1251); const int s = 2; int...

Умножение треугольных матриц«Методы обработки разреженных матриц»
Нужно перемножить треугольные матрицы в обычном виде и в свёрнутом. С обычным проблем нет. Доступ к элементам свёрнутой матрицы...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2014, 20:44
Помогаю со студенческими работами здесь

Умножение матриц
Найти произведение k квадратных матриц А1*А2*...Аk. Процедура: вычисление произведения двух матриц.

Умножение матриц
Ох уж этот универ... Короче, дела обстоят так: Перемножить матрицы А размером nхm и В размером mхl. Элементы результирующей матрицы...

Умножение матриц
помогите сделать задачу: Даны матрицы: А размером m*k и В размером k*n.Получить матрицуС=A*В. Создавайте темы с осмысленными и понятными...

Умножение матриц
Доброго времени суток:) Помогите пожалуйста в написании программы. Пользователь вводит Матрицу А(размер 2х2) и Матрицу В(размер 2х2). ...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru