Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
#1

Реализовать перемножение двух матриц 2х2 на основании данных варианта задания - C++

15.10.2012, 19:23. Просмотров 1349. Ответов 14
Метки нет (Все метки)

2. Реализовать перемножение двух матриц 2х2 на основании данных варианта задания(1 2 3 4 5 6 7 8 ). Результат в виде таблицы значений элементов результирующей матрицы вывести на консоль.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int main()
{
 
  int tab1[2][2] = {1,2,3,4};
  int tab2[2][2] = {5,6,7,8};
  int dap[2][2];
  int p;
 
 
   
  dap[1][1]=tab1[1][1]*tab2[1][1]+tab1[1][2]*tab2[2][1];
dap[1][2]=tab1[1][1]*tab2[1][2]+tab1[1][2]*tab2[2][2];
dap[2][1]=tab1[2][1]*tab2[1][1]+tab1[2][2]*tab2[2][1];
dap[2][2]=tab1[2][1]*tab2[2][1]+tab1[2][2]*tab2[2][2]; 
 
 
  printf("%d\n", dap[2][2] );
Вот у меня не получается.Где ошибка?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 19:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализовать перемножение двух матриц 2х2 на основании данных варианта задания (C++):

Как реализовать перемножение матриц? - C++
#include &lt;iostream&gt; using namespace std; void main() { setlocale (LC_ALL, &quot;RUS&quot;); int Na,Ma,a; int i,j;

Перемножение двух матриц - C++
Написать программу перемножения двух матриц. Использовать динамические массивы. Вот код, но это при условии, что N у всех трех матриц...

Перемножение двух матриц - C++
int Multiplication(int a, int b) { cout &lt;&lt; &quot;***********Result***********&quot; &lt;&lt; endl; int c; for(int i = 0; i &lt; 5; i++) // i...

Перемножение двух матриц - C++
Приет.Ребята подскажите как перемножить две матрицы разных размеров используя динамический массив Вот код который получился у меня: ...

Перемножение двух матриц - C++
Yo. У меня проблема с перемножением. Код конечно же написал, но вот в чем проблема. Когда я ввожу элементы матрицы В ( а это 2 матрица), но...

Перемножение двух матриц - C++
Собственно задачка: Написать программу перемножения двух матриц. Найти вид функции сложности алгоритма. 2 пункт не обязателен, а...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 20:11 #2
Jumb0,

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
int arr1[2][2] = {{1, 2}, {3, 4}};
   int arr2[2][2] = {{5, 6}, {7, 8}};
 
   int res[2][2] = {0};
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           for (int k=0; k<2; ++k)
           {
               res[i][j] += arr1[i][k] * arr2[k][j];
           }
       }
   }
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           cout << res[i][j] <<" ";
       }
       cout << endl;
   }
1
StasGamilton
Эксперт по пяченькам
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
15.10.2012, 20:15 #3
Счет элементов массива начинается не с единицы (1), а с 0.
Т.е.
C++
1
2
3
4
int tab[2] = {1,2};
std::cout << tab[0]     // первый элемент
              << tab[1]     // второй элемент
              << std::endl;
а в памяти tab[2] валяется черт знает, что (в основном числа типа 1003423920)
0
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:14  [ТС] #4
а почему у меня cout подчеркивает?
0
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 22:16 #5
Jumb0,

подключи
C++
1
<iostream>
0
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:24  [ТС] #6
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
#include <stdio.h>
#include <iostream.h>
int main()
{
 
 int arr1[2][2] = {{1, 2}, {3, 4}};
   int arr2[2][2] = {{5, 6}, {7, 8}};
  int res[2][2] = {0};
  int p;
 
 
   
  
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           for (int k=0; k<2; ++k)
           {
               res[i][j] += arr1[i][k] * arr2[k][j];
           }
       }
   }
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           cout << res[i][j] <<" ";
       }
       cout << endl;
   }
 
 
  printf("%d\n", dap[2][2] ); 
}


Все равно ничего не работает ...что такое endl и что делает cout?
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 22:29 #7
вот код до main:

C++
1
2
3
4
5
6
7
#include <iostream> // не <iostream.h> а <iostream>
 
using namespace std;
 
int main()
{
....
1
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:31  [ТС] #8
что такое endl и что делает cout?
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 22:37 #9
cout << "dfsdfsdf" - вывод на печать строчки. то же самое с числами и другими типами объектов.
печатает числа и прочее.
до кучи еще вот тут объясняли что к чему:
endl
поищите в сети. инфы полно.
1
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:43  [ТС] #10
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
#include <iostream>
 
using namespace std;
int main()
{
  int mas[7]={12, 11, 10, 3, 1, 2,4};
 int arr1[2][2] = {{1, 2}, {3, 4}};
   int arr2[2][2] = {{5, 6}, {7, 8}};
  int res[2][2] = {0};
  int p;
 
  printf("%d, %d, %d, %d, %d, %d, %d \n", mas[0], mas[1], mas[2], mas[3], mas[4], mas[5], mas[6]);
   
  
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           for (int k=0; k<2; ++k)
           {
               res[i][j] += arr1[i][k] * arr2[k][j];
           }
       }
   }
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           cout << res[i][j] <<" ";
       }
       cout << endl;
   }

Блин . не компилируется прога
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 23:24 #11
ну вы хоть ошибки читайте и пытайтесь понять что они означают и как их исправить можно было бы.
подозреваю сейчас у вас ругается на функцию printf, которая используется в коде, но компилятор ее типа не знает. чтобы начал узнавать, верните инклуд
#include <stdio.h>
C++
1
2
3
4
или вместо
 printf("%d, %d, %d, %d, %d, %d, %d \n", mas[0], mas[1], mas[2], mas[3], mas[4], mas[5], mas[6]);
напишите
 cout << mas[0] << "  " << mas[1] <<  " " << mas[2] << " " << mas[3] << " " << mas[4] << " "  << mas[5] << " " << mas[6] << endl;
и в будущем выкладывайте полностью описание ошибок.
0
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 23:33  [ТС] #12
Тут я разобрался , можешь ответить тут у меня задачка не компилируется.Можете найти ошибку
0
JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
15.10.2012, 23:44 #13
Цитата Сообщение от Jumb0 Посмотреть сообщение
у меня задачка не компилируется.Можете найти ошибку
У меня все компилируется. Какую ошибку у вас выдает компилятор?
0
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
15.10.2012, 23:47 #14
что значит не комплируется?какие ошибки выдает?
0
StasGamilton
Эксперт по пяченькам
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
16.10.2012, 12:30 #15
Случайно не потому что скобочку в конец забыл?
Вот такую: }
Итого должно получиться:
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
#include <iostream>
 
using namespace std;
int main()
{
  int mas[7]={12, 11, 10, 3, 1, 2,4};
 int arr1[2][2] = {{1, 2}, {3, 4}};
   int arr2[2][2] = {{5, 6}, {7, 8}};
  int res[2][2] = {0};
  int p;
 
  printf("%d, %d, %d, %d, %d, %d, %d \n", mas[0], mas[1], mas[2], mas[3], mas[4], mas[5], mas[6]);
   
  
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           for (int k=0; k<2; ++k)
           {
               res[i][j] += arr1[i][k] * arr2[k][j];
           }
       }
   }
 
   for (int i=0; i<2; ++i)
   {
       for (int j=0; j<2; ++j)
       {
           cout << res[i][j] <<" ";
       }
       cout << endl;
   }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 12:30
Привет! Вот еще темы с ответами:

Перемножение двух квадратных целочисленных матриц - C++
Помогите написать прогу: Написать подпрограмму void mult(int a, int b, int c, int N); для перемножения двух квадратных...

Перемножение двух матриц. В ответе большие отрицательные числа - C++
Код написан верно, но при расчете выдает странный результат. Вместо правильных ответов, он прибавляет их к числу -858993460. Чем это...

Реализовать программу, рисующую треугольник на основании введённых пользователем данных - C++
Здравствуйте Нужна помощь в написании программы) Пишу с руки 3 стороны треугольника, программа должна нарисовать сам...

Реализовать сложение двух заданных матриц - C++
Даны матрицы A и B размерностю nxn, найти C=A+B.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.10.2012, 12:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru