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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Двумерные массивы. Простой поиск. http://www.cyberforum.ru/cpp-beginners/thread175673.html
Определить индексы максимального элемента матрицы. Вычислить произведение элементов над главной диагональю
C++ Вычисление значений функций. Доброго времени суток.Мне нужно найти значение функции ,сумму и |Y(x)–S(x)|.При том что Х изменяется от a до b с прибавлением h,где h в пределах a и b.Так же ввести любое значение n. #include <stdio.h> #include <conio.h> #include <math.h> #pragma hdrstop #pragma argsused int main(int argc, char* argv) { { http://www.cyberforum.ru/cpp-beginners/thread175667.html
Реккурентные формулы C++
помогите решить пример с помощью реккурентных формул.
C++ Криптография. Шифр 4-х квадратов
Используя шифр четырех квадратов, зашифровать слово programmer. надо сделать на форме, там надо использовать компонент StringGrid Я немного написал коду, но незнаю правильно или нет.... Очень прошу помогите=) #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource...
C++ Из ворд в Эксель http://www.cyberforum.ru/cpp-beginners/thread175620.html
В состоянии ли C/C++ принять информацию с ворд и записать ее в эксель??? Вот у меня информация в ворде в след формате: 1 Моро М.И. 2 кл Математика. - Москва: Просвещение, 2002. 2 Юдовская А.Я. 7 кл Новая история 1500-1800. - Москва: Просвещение, 2002.
C++ В графике надо считать массив float Borland C - в графике надо считать, например, массив float , как быть, считать надо горизонтально, не могу придумать, подскажите что-нибудь... подробнее

Показать сообщение отдельно
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 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;
}
 
Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru