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

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

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

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

15.10.2012, 19:23. Просмотров 1337. Ответов 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] );
Вот у меня не получается.Где ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2012, 19:23     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания
Посмотрите здесь:
Как реализовать перемножение матриц? C++
C++ Перемножение двух матриц
Перемножение двух матриц C++
Перемножение двух матриц C++
Перемножение двух матриц C++
C++ Перемножение двух матриц
Перемножение двух квадратных целочисленных матриц C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 20:11     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #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;
   }
StasGamilton
Эксперт по пяченькам
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
15.10.2012, 20:15     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #3
Счет элементов массива начинается не с единицы (1), а с 0.
Т.е.
C++
1
2
3
4
int tab[2] = {1,2};
std::cout << tab[0]     // первый элемент
              << tab[1]     // второй элемент
              << std::endl;
а в памяти tab[2] валяется черт знает, что (в основном числа типа 1003423920)
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:14  [ТС]     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #4
а почему у меня cout подчеркивает?
Арсенал
144 / 66 / 6
Регистрация: 30.12.2011
Сообщений: 137
15.10.2012, 22:16     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #5
Jumb0,

подключи
C++
1
<iostream>
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:24  [ТС]     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #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?
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 22:29     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #7
вот код до main:

C++
1
2
3
4
5
6
7
#include <iostream> // не <iostream.h> а <iostream>
 
using namespace std;
 
int main()
{
....
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:31  [ТС]     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #8
что такое endl и что делает cout?
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 22:37     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #9
cout << "dfsdfsdf" - вывод на печать строчки. то же самое с числами и другими типами объектов.
печатает числа и прочее.
до кучи еще вот тут объясняли что к чему:
endl
поищите в сети. инфы полно.
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 22:43  [ТС]     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #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;
   }

Блин . не компилируется прога
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
15.10.2012, 23:24     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #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;
и в будущем выкладывайте полностью описание ошибок.
Jumb0
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 85
15.10.2012, 23:33  [ТС]     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #12
Тут я разобрался , можешь ответить тут у меня задачка не компилируется.Можете найти ошибку
JlightenDev_C++
61 / 61 / 7
Регистрация: 12.08.2012
Сообщений: 150
15.10.2012, 23:44     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #13
Цитата Сообщение от Jumb0 Посмотреть сообщение
у меня задачка не компилируется.Можете найти ошибку
У меня все компилируется. Какую ошибку у вас выдает компилятор?
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
15.10.2012, 23:47     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #14
что значит не комплируется?какие ошибки выдает?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 12:30     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания
Еще ссылки по теме:
C++ Перемножение двух матриц. В ответе большие отрицательные числа
Реализовать программу, рисующую треугольник на основании введённых пользователем данных C++
Реализовать сложение двух заданных матриц C++
Перемножение матриц C++
C++ Перемножение матриц

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

Или воспользуйтесь поиском по форуму:
StasGamilton
Эксперт по пяченькам
67 / 67 / 1
Регистрация: 16.08.2011
Сообщений: 258
16.10.2012, 12:30     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания #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;
   }
}
Yandex
Объявления
16.10.2012, 12:30     Реализовать перемножение двух матриц 2х2 на основании данных варианта задания
Ответ Создать тему
Опции темы

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