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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Двумерные массивы. Простой поиск. http://www.cyberforum.ru/cpp-beginners/thread175673.html
Определить индексы максимального элемента матрицы. Вычислить произведение элементов над главной диагональю
C++ Вычисление значений функций. Доброго времени суток.Мне нужно найти значение функции ,сумму и |Y(x)–S(x)|.При том что Х изменяется от a до b с прибавлением h,где h в пределах a и b.Так же ввести любое значение n. #include... http://www.cyberforum.ru/cpp-beginners/thread175667.html
Реккурентные формулы C++
помогите решить пример с помощью реккурентных формул.
C++ Криптография. Шифр 4-х квадратов
Используя шифр четырех квадратов, зашифровать слово programmer. надо сделать на форме, там надо использовать компонент StringGrid Я немного написал коду, но незнаю правильно или нет.... Очень прошу...
C++ Из ворд в Эксель http://www.cyberforum.ru/cpp-beginners/thread175620.html
В состоянии ли C/C++ принять информацию с ворд и записать ее в эксель??? Вот у меня информация в ворде в след формате: 1 Моро М.И. 2 кл Математика. - Москва: Просвещение, 2002. ...
C++ В графике надо считать массив float Borland C - в графике надо считать, например, массив float , как быть, считать надо горизонтально, не могу придумать, подскажите что-нибудь... подробнее

Показать сообщение отдельно
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
14.10.2010, 17:48
Может кто лутше вариант посоветует

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
#include <iostream>
#include <ctime>
 
using std::cout;
using std::cin;
using std::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++)
           {
               A[i][j]=rand()%5; //заполнение матриц А и В случайными числами
               B[i][j]=rand()%5;
               C[i][j]=0;
               At[i][j]=0;
               temp[i][j]=0;
 
           }
     }
     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;
}
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru