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

Сложение, произведение, деление матриц, возведение в степень, обратная матрица - C++

Восстановить пароль Регистрация
 
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
28.04.2014, 03:04     Сложение, произведение, деление матриц, возведение в степень, обратная матрица #1
Доброго времени суток! Нужна помощь в действиях с матрицами, а именно: сложение, произведение, деление матриц, возведение в степень, обратная матрица. Буду весьма признателен за помощь и полезную информацию.

Матрицы создаю так:

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
cout << "\nEnter rows size: ";
    cin >> k;
 
    cout << "\nEnter columns size: ";
    cin >> m;
 
    //------------------------Выделение памяти------------------------------------
    int **mas1 = new int *[k];
 
    for (int i = 0; i < k; i++) {
      mas1[i] = new int [m];
    }
 
    cout << "Enter matrix elements:"<< endl;
 
    for (i=0; i<k; i++)//Заполняем массив
        {
        for (j=0; j<m; j++)
            {
                cout<<"Enter element ["<<i<<"]["<<j<<"] : ";
                cin>>mas1[i][j];
            }   cout<<endl;
        }
 
    cout <<"Your matrix:"<<endl;
 
    for(i=0; i<k; i++)//Выводим сам массив
        {
            for(j=0; j<m; j++)
            {
                cout <<mas1[i][j] <<"\t";
            }
 
            cout << endl;
        }
 
    //--------------------------Освобождение памяти----------------------------
    for (int i = 0; i < k; i++) {
      delete []mas1[i];
    }
    delete []mas1;
    mas1 = NULL; // Обнуление массива
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 03:04     Сложение, произведение, деление матриц, возведение в степень, обратная матрица
Посмотрите здесь:

Возведение в степень C++
C++ Возведение в степень. C++
C++ возведение в степень!
C++ Возведение степень
C++ Возведение в степень
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TenGen
Будущее рядом
 Аватар для TenGen
96 / 94 / 20
Регистрация: 06.03.2014
Сообщений: 342
28.04.2014, 09:06     Сложение, произведение, деление матриц, возведение в степень, обратная матрица #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Donville, предлагаю сделать все действия в функциях, которым будут передаваться ссылки на матрицы и их размер. Пример:
C++
1
2
3
4
5
6
void summ(int **a, int **b, int **result, int n, int m)
{
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            result[i][j] = a[i][j]+b[i][j];
}
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
29.04.2014, 00:24  [ТС]     Сложение, произведение, деление матриц, возведение в степень, обратная матрица #3
Так и сделаю... Постараюсь выкладывать сюда по мере написания остальное.
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
09.05.2014, 16:44  [ТС]     Сложение, произведение, деление матриц, возведение в степень, обратная матрица #4
TenGen, хорошо, а если у нас матрицы разных размеров?

Добавлено через 5 минут
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
float** Summ(float **mas1, float **mas2, float **sum, int k, int m, int u, int s)
{
    if (((k>u)&&(m>s)) || ((k==u)&&(m==s)) )
    {
        for (int i = 0; i < k; i++)
            for (int j = 0; j < m; j++)
                sum[i][j] = mas1[i][j]+mas2[i][j];
    }
 
    if ((k>=u)&&(m<s))
    {
        for (int i = 0; i < k; i++)
            for (int j = 0; j < s; j++)
                sum[i][j] = mas1[i][j]+mas2[i][j];
    }
 
    if ((k<u)&&(m>=s))
    {
        for (int i = 0; i < u; i++)
            for (int j = 0; j < m; j++)
                sum[i][j] = mas1[i][j]+mas2[i][j];
    }
 
    if ((k<u)&&(m<s))
    {
        for (int i = 0; i < u; i++)
            for (int j = 0; j < s; j++)
                sum[i][j] = mas1[i][j]+mas2[i][j];
    }
 
    return sum;
}
Проверьте, пожалуйста.
Yandex
Объявления
09.05.2014, 16:44     Сложение, произведение, деление матриц, возведение в степень, обратная матрица
Ответ Создать тему
Опции темы

Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru