Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2014, 17:12   #1
Victorials2648
Пользователь
 
Регистрация: 11.02.2014
Сообщений: 24
По умолчанию Умножение матрицы на матрицу. На С++

Задача. Требуется умножить матрицу А на матрицу В, и получить результат от умножения двух матриц.

Код программы:

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <locale>
#include <conio.h>

using namespace std;

int main() {

setlocale(LC_ALL,"Russian");

const int MATRIX_RANGE = 6;

int first_matrix[1][MATRIX_RANGE];
int second_matrix[MATRIX_RANGE][MATRIX_RANGE];
int result_matrix[MATRIX_RANGE][MATRIX_RANGE];

srand(static_cast<unsigned> (time(NULL)));

for (int i = 0; i < MATRIX_RANGE; i++)
first_matrix[0][i] = rand() % 80 + 10;

for (int i = 0; i < MATRIX_RANGE; i++)
for (int j = 0; j < MATRIX_RANGE; j++)
second_matrix[i][j] = rand() % 80 + 10;

for (int i = 0; i < MATRIX_RANGE; i++)
for (int j = 0; j < MATRIX_RANGE; j++)
result_matrix[i][j] = first_matrix[0][j] * second_matrix[i][j];

cout << "Первая матрица A: " << endl;
for (int i = 0; i < MATRIX_RANGE; i++)
cout << first_matrix[0][i] << " ";

cout << endl << "Вторая матрица B: " << endl;
for (int i = 0; i < MATRIX_RANGE; i++)
for (int j = 0; j <= MATRIX_RANGE; j++)
if (j == MATRIX_RANGE) cout << endl; else cout << second_matrix[i][j] << " ";

cout << endl << "Результативная матрица: " << endl;
for (int i = 0; i < MATRIX_RANGE; i++)
for (int j = 0; j <= MATRIX_RANGE; j++)
if (j == MATRIX_RANGE) cout << endl; else cout << result_matrix[i][j] << " ";

cout << endl << "Нажмите любую клавишу...";
_getch();
return 0;
}

Помогите пожалуйста, как сделать чтобы в скриншоте получился такой вид! Кому не лень сделать в программе С++, чтобы в отладке показывался такой результат программы, как на этом скриншоте!
Зараннее спасибо!
Изображения
Тип файла: jpg ПР_Умножение матрицу на матрицу.JPG (44.0 Кб, 115 просмотров)

Последний раз редактировалось Victorials2648; 04.04.2014 в 20:15.
Victorials2648 вне форума Ответить с цитированием
Старый 05.04.2014, 06:23   #2
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

В программе вектор-строка умножается на матрицу.
То есть первая матрица состояит из одной строки.
Приложение консольное д.б.?

Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <locale>
#include <conio.h>

using namespace std;

int main() 
{
int i,j,k;


setlocale(LC_ALL,"Russian");
const int MATRIX_RANGE = 6;

int first_matrix[MATRIX_RANGE][MATRIX_RANGE];
int second_matrix[MATRIX_RANGE][MATRIX_RANGE];
int result_matrix[MATRIX_RANGE][MATRIX_RANGE];

srand(static_cast<unsigned> (time(NULL)));

for (i = 0; i < MATRIX_RANGE; i++)
for (j = 0; j < MATRIX_RANGE; j++)
{
first_matrix[i][j] = rand() % 80 + 10;
second_matrix[i][j] = rand() % 80 + 10;    
}

for (i = 0; i < MATRIX_RANGE; i++)
for (j = 0; j < MATRIX_RANGE; j++)
{
result_matrix[i][j] = 0;
for(k = 0;k < MATRIX_RANGE; k++)
{
result_matrix[i][j] += first_matrix[i][k] * second_matrix[k][j];
}
}


cout << "Первая матрица A: " << endl;
for (i = 0; i < MATRIX_RANGE; i++)
{
for (j = 0; j <= MATRIX_RANGE; j++)
cout << first_matrix[i][i] << " " ;
cout << endl;
}

cout << endl << "Вторая матрица B: " << endl;
for (i = 0; i < MATRIX_RANGE; i++)
for (j = 0; j <= MATRIX_RANGE; j++)
if (j == MATRIX_RANGE) cout << endl; else cout << second_matrix[i][j] << " ";     

cout << endl << "Результативная матрица: " << endl;
for (i = 0; i < MATRIX_RANGE; i++)
for (j = 0; j <= MATRIX_RANGE; j++)
if (j == MATRIX_RANGE) cout << endl; else cout << result_matrix[i][j] << " ";     

cout << endl << "Нажмите любую клавишу. " ;
_getch();
return 0;    
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение вектора на матрицу. Паскаль xakkkkker Помощь студентам 2 18.06.2012 19:42
матрицы.фрипаскаль.Умножение Akcentbek Помощь студентам 0 21.01.2012 13:07
умножение матрицы на матрицу fort-_-minor Общие вопросы C/C++ 2 26.12.2010 19:13
Умножение матрицы на строку Алексей_xXx Помощь студентам 0 06.12.2009 21:07