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

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

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

Студворк — интернет-сервис помощи студентам
Вычислить
Миниатюры
Вычисление матриц  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2010, 22:02
Ответы с готовыми решениями:

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...

Обход матриц и вычисление значений
#include <iostream> #include <stdlib.h> #include <time.h> using namespace std; int main() { setlocale( LC_ALL,"Russian" ); ...

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

33
7 / 7 / 2
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:00  [ТС]
Студворк — интернет-сервис помощи студентам
Я незнаю, меняет ли ето дело, но я не дописал все задание. С клавиатури задание матрицы A(nxn)B(nxn).Вычеслить С
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 01:09
Сейчас нет компилятора, потому не проверял!!!

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;
}
1
7 / 7 / 2
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:12  [ТС]
А можна как то без етого
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]. Можете переделать очень прошу....=)
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 01:15
Могу переделать, только когда поставлю IDE!!! Примерно завтра.
1
7 / 7 / 2
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 01:18  [ТС]
о0 спасибо огромное, завтра напишите мне!=)))) Буду ждать=)))
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
16.10.2010, 10:33
Какой то бред:

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;
}
1
7 / 7 / 2
Регистрация: 16.09.2009
Сообщений: 410
16.10.2010, 15:12  [ТС]
Спасибо огромное=))))

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

Добавлено через 1 минуту
Цитата Сообщение от Alston Посмотреть сообщение
И откуда мы взяли arr[100][100] вот ето 100?
Ета обявления матриц, 100 - максимальний размер(хотя используется только столько, сколько вы задаете ). Вы попросили без динамики, я сделал!!!
0
7 / 7 / 2
Регистрация: 16.09.2009
Сообщений: 410
17.10.2010, 20:35  [ТС]
А как будет выглядить с динамикой?
0
 Аватар для MILAN
899 / 793 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
17.10.2010, 20:43
А как будет выглядить с динамикой?
Смотри 10 пост!!!
0
Анастасия)
03.11.2010, 17:19
Плииз помогите!!!!!
Меняя местами строки матрицы, отсортировать по возрастанию ее первый столбец.
Напишите на мыло пплз anastacia06.11@mail.ru
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,329
03.11.2010, 18:11
Огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2010, 18:11
Помогаю со студенческими работами здесь

Вычисление произведения матриц (не проходит по времени)
Заданы две целочисленные матрицы A и B. Матрица A состоит из N строк и M столбцов, Матрица B состоит из M строк и P столбцов. Требуется...

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

Вычисление произведения двух матриц (матрицы реализовать в виде динамических массивов)
написать программу для вычисления произведения двух матриц.матрицы реализовать в виде динамических массивов.программа работает неправильно...

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

Возведение матриц в степени, перемножение и сложение матриц
Даны 3-ех элементные вещественные векторы x и y и квадратные матрицы A и B. Вычислить: (A 2 * x, y) + (B 2 * y, x) + (A * B * x, y) ...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru