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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.81
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
#1

Вычисление матриц - C++

12.10.2010, 22:02. Просмотров 6725. Ответов 33
Метки нет (Все метки)

Вычислить
Миниатюры
Вычисление матриц  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2010, 22:02     Вычисление матриц
Посмотрите здесь:

Обход матриц и вычисление значений - C++
Дана квадратная матрица порядка n. Найти наибольший ее элемент, расположенный в заштрихованной области. Размер матрицы и ее элементы...

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

Суммирование матриц - C++
Напишите программу, которая суммирует матрицы. Размер матриц произвольный. Значения вводятся с клавиатуры

Умножение матриц - C++
#include <iostream> #include <ctime> // в ней функция time #include <conio.h> #include <stdio.h> using namespace std; void...

Умножение матриц - C++
Ошибка: не хочет умножать. c=c+a*b; int **mat(int n){ int **matrix; matrix=new int *; for (int i=0; i<2; i++) ...

Решение матриц - C++
Самое сложное, наверное что может быть, это решение матриц.. Прошу у Вас помощи, многоуважаемые товарищи программисты! Буду очень...

Умножение матриц - C++
Я юзаю Qt, но пишу сюда т.к. он никак не влияет на код (почти) У меня есть две матрицы A и B (размерность обеих 800х800). Чтобы получить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:00  [ТС]     Вычисление матриц #21
Я незнаю, меняет ли ето дело, но я не дописал все задание. С клавиатури задание матрицы A(nxn)B(nxn).Вычеслить С
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 01:09     Вычисление матриц #22
Сейчас нет компилятора, потому не проверял!!!

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
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
#include <iostream>
#include <ctime>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
 void input(int **arr, int size)
  {
       for(int i=0; i<size; i++)
               {
                   for(int j=0; j<size; j++)
                    {
                         cout<<"Введите елемент ["<<i<<"]["<<j<<"]=";
                         cin>>arr[i][j];
                         cout<<endl;  
                         
                    }
 
          }
     
  }
 void output (int **arr, int size)// функция вывода матриц
 {
         for(int i=0; i<size; i++)
         {
                   for(int j=0; j<size; j++)
                    {
                           cout<<arr[i][j]<<" ";
                    }
 
                    cout<<endl;
         }
 
 }
 int** mult(int **arr1, int **arr2, int **res, int size) // функция  умножения двух матриц 
 {  
        for ( int i=0; i<size; i++)
      {
        for (int j=0; j<size; j++)
          {
             for (int k=0; k<size; k++)
               {
                  res[i][j] += arr1[i][k] * arr2[k][j];// присвоения результата умножения матрице С
                                  
               }
                         //cout<<res[i][j]<<"  ";
          }
                //cout<<endl;
       } 
        return res;
 }
 int** trans(int **matr, int **matr_tr, int size) // функция транспонирования матриц 
 {
       for(int i=0; i<size; i++)
              {
            for(int j=0; j<size; j++)
                           {
                  matr_tr[i][j]=matr[j][i];
               }
          }
         return matr_tr;
 }
 int** rizn(int **matr1, int **res, int size) //функция вычитания матриц
 {
         for(int i=0; i<size; i++)
         {
                 for(int j=0; j<size; j++)
                 {
                         res[i][j]=res[i][j]-matr1[i][j];
                 }
         }
         return res;
 }
 int** mult_ch(int **matr, int **res, int size) //функция умножения матрицы на число
 {
         for(int i=0; i<size; i++)
         {
                 for(int j=0; j<size; j++)
                 {
                         res[i][j]=3*(matr[i][j]);
                 }
         }
         return res;
 }
int main ()
{
     srand((unsigned int)time(NULL));
          setlocale( LC_ALL,"Russian" );
         int size,i,j;
         int **A, **B, **C, **At, **temp; //опредиления указателей на матрицы
         cout<<"Введите розмер: ";
         cin>>size;
         A = new int*[size]; //выделение памяти под строки матриц
         B = new int*[size]; 
         C = new int*[size]; 
         At = new int*[size]; 
         temp = new int*[size];
         for(i=0; i<size; i++)
         {
                   A[i]= new int[size]; //выделение памяти под столбцы матриц
                   B[i]= new int[size]; 
                   C[i]= new int[size]; 
                   At[i] = new int[size];  
                   temp[i] = new int[size];
                 for(j=0; j<size; j++)
                   {
                           C[i][j]=0;
                           At[i][j]=0;
                           temp[i][j]=0;
 
                   }
         }
         input(A,size);
         input(B,size);
         cout<<endl;
         cout<<"Матрица А:"<<endl;
         output(A,size); //вывод матрицы А
         cout<<endl;
         cout<<"Матрица B:"<<endl;
         output(B,size); //вывод матрицы А
         cout<<endl;
     cout<<"Матрица C:"<<endl;
     mult((trans(A,At,size)),B,C,size); //А^t*B 
         mult_ch((mult(B,B,At,size)),A,size);//3*B^2
         mult((rizn(A,C,size)),B,temp,size);//(A^t-3*B^2)*B
         output(temp,size); //вывод матрицы С
//очистка памяти  
for(i=0; i<size; i++)
        {
          delete A[i], B[i], C[i], At[i];
        }
         delete [] A;
         delete [] B;
         delete [] C;
         delete [] At;
         delete [] temp;         
     system("PAUSE");
     return 0;
}
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:12  [ТС]     Вычисление матриц #23
А можна как то без етого
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
srand((unsigned int)time(NULL));
          setlocale( LC_ALL,"Russian" );
         int size,i,j;
         int **A, **B, **C, **At, **temp; //опредиления указателей на матрицы
         cout<<"Введите розмер: ";
         cin>>size;
         A = new int*[size]; //выделение памяти под строки матриц
         B = new int*[size]; 
         C = new int*[size]; 
         At = new int*[size]; 
         temp = new int*[size];
         for(i=0; i<size; i++)
         {
                   A[i]= new int[size]; //выделение памяти под столбцы матриц
                   B[i]= new int[size]; 
                   C[i]= new int[size]; 
                   At[i] = new int[size];  
                   temp[i] = new int[size];
                 for(j=0; j<size; j++)
                   {
                           C[i][j]=0;
                           At[i][j]=0;
                           temp[i][j]=0;
 
                   }
         }
И без етого int **arr.... и тому подобние переменние без етих звездочок. мы просто ето не учили, мы писали типу int A[n][n], B[n][n]. Можете переделать очень прошу....=)
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 01:15     Вычисление матриц #24
Могу переделать, только когда поставлю IDE!!! Примерно завтра.
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:18  [ТС]     Вычисление матриц #25
о0 спасибо огромное, завтра напишите мне!=)))) Буду ждать=)))
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 10:33     Вычисление матриц #26
Какой то бред:

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
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
#include <iostream>
#include <ctime>
 
 
using std::cout;
using std::cin;
using std::endl;
 
 
 void input(int arr[100][100], int size)
  {
       for(int i=0; i<size; i++)
               {
                   for(int j=0; j<size; j++)
                    {
                         cout<<"Введите елемент ["<<i+1<<"]["<<j+1<<"]=";
                         cin>>arr[i][j];
                         cout<<endl;  
                         
                    }
 
          }
     
  }
 
 void output (int arr[100][100], int size)// функция вывода матриц
 {
         for(int i=0; i<size; i++)
         {
                   for(int j=0; j<size; j++)
                    {
                           cout<<arr[i][j]<<" ";
                    }
 
                    cout<<endl;
         }
 
 }
  
 int mult(int arr1[100][100], int arr2[100][100], int res[100][100], int size) // функция  умножения двух матриц 
 {  
        for ( int i=0; i<size; i++)
      {
        for (int j=0; j<size; j++)
          {
             for (int k=0; k<size; k++)
               {
                  res[i][j] += arr1[i][k] * arr2[k][j];// присвоения результата умножения матрице С
                                  
               }
                         //cout<<res[i][j]<<"  ";
          }
                //cout<<endl;
       } 
        return res[100][100];
 }
int trans(int matr[100][100], int matr_tr[100][100], int size) // функция транспонирования матриц 
 {
       for(int i=0; i<size; i++)
              {
            for(int j=0; j<size; j++)
                           {
                  matr_tr[i][j]=matr[j][i];
               }
          }
        return matr_tr[100][100];
 }
 int rizn(int matr1[100][100], int res[100][100], int size) //функция вычитания матриц
 {
         for(int i=0; i<size; i++)
         {
                 for(int j=0; j<size; j++)
                 {
                         res[i][j]=res[i][j]-matr1[i][j];
                 }
         }
      return res[100][100];
 }
 int mult_ch(int matr[100][100], int res[100][100], int size) //функция умножения матрицы на число
 {
         for(int i=0; i<size; i++)
         {
                 for(int j=0; j<size; j++)
                 {
                         res[i][j]=3*(matr[i][j]);
                 }
         }
        return res[100][100];
 }
 
int main ()
{
         setlocale( LC_ALL,"Russian" );
         int size;
         int A[100][100], B[100][100], C[100][100], At[100][100], temp[100][100]; //опредиления указателей на матрицы
         cout<<"Введите розмер: ";
         cin>>size;
         cout<<"Матрица А:"<<endl;
         input(A,size);
         cout<<"Матрица B:"<<endl; 
         input(B,size);
         cout<<endl;
         system("cls");
         cout<<"Матрица А:"<<endl;
          output(A,size); //вывод матрицы А
         cout<<endl;
         cout<<"Матрица B:"<<endl;    
          output(B,size); //вывод матрицы А
         cout<<endl;
         cout<<"Матрица C:"<<endl;
          trans(A,At,size);
          mult(At,B,C,size); //А^t*B
          mult(B,B,At,size);
          mult_ch(At,A,size);//3*B^2
          rizn(A,C,size);
          mult(C,B,temp,size);//(A^t-3*B^2)*B
          output(temp,size); //вывод матрицы С*/
   system("PAUSE");
     return 0;
}
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 15:12  [ТС]     Вычисление матриц #27
Спасибо огромное=))))

Добавлено через 3 минуты
Что значит system("cls"); ?
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 22:56     Вычисление матриц #28
Что значит system("cls"); ?
Очистка екрана!!!
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 00:47  [ТС]     Вычисление матриц #29
А зачем она нужна вопше, можна стереть?
И откуда мы взяли arr[100][100] вот ето 100?
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 00:50     Вычисление матриц #30
Цитата Сообщение от Alston Посмотреть сообщение
А зачем она нужна вопше, можна стереть?
Да конечно, ето для удобства!!!

Добавлено через 1 минуту
Цитата Сообщение от Alston Посмотреть сообщение
И откуда мы взяли arr[100][100] вот ето 100?
Ета обявления матриц, 100 - максимальний размер(хотя используется только столько, сколько вы задаете ). Вы попросили без динамики, я сделал!!!
Alston
7 / 7 / 0
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 20:35  [ТС]     Вычисление матриц #31
А как будет выглядить с динамикой?
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 20:43     Вычисление матриц #32
А как будет выглядить с динамикой?
Смотри 10 пост!!!
Анастасия)
Сообщений: n/a
03.11.2010, 17:19     Вычисление матриц #33
Плииз помогите!!!!!
Меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец.
Напишите на мыло пплз anastacia06.11@mail.ru
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 18:11     Вычисление матриц
Еще ссылки по теме:

Класс матриц - C++
Пишу класс для работы с матрицами . Не могу понять , почему не работают функции power и swap_rows (функции возвращают ту же матрицу без...

Обработка матриц - С++ - C++
Вот задача нужно решить - С++. Не могу решить, не получается... Найти наибольший и наименьший элементы матрицы и поменять местами...

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

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

Сортировка матриц - C++
Дана матрица NxM вывести матрицу, определяющую знак перед числом. Например: -1 2 -3 4 -5 6 -1 -2 3 -4 5 -6 полученная матрица:...


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

Или воспользуйтесь поиском по форуму:
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 656
03.11.2010, 18:11     Вычисление матриц #34
Огромное спасибо
Yandex
Объявления
03.11.2010, 18:11     Вычисление матриц
Ответ Создать тему
Опции темы

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