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

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

Войти
Регистрация
Восстановить пароль
 
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 113
#1

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

28.04.2014, 03:04. Просмотров 568. Ответов 3
Метки нет (Все метки)

Доброго времени суток! Нужна помощь в действиях с матрицами, а именно: сложение, произведение, деление матриц, возведение в степень, обратная матрица. Буду весьма признателен за помощь и полезную информацию.

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

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++):

Матрица и функция (Сложение двух матриц функцией sum) - C++
Всем привет. Не получается создать функцию. Задача: Сложение двух матриц функцией sum. Условие: Размеры матриц указываются...

Возведение в степень - C++
подскажите,пожалуйста, способ реализации (алгоритм)операции возведение в степень числа с показателем более 200. Результат не должен...

Возведение в степень - C++
Вывести на экран таблицу степеней &quot;к&quot;, где те изменяются от 1 до 10,к-вещественое число.оперцию возведения вещественого числа в степень...

Возведение в степень - C++
Вот есть программа, работает только, для положительной степени. Помогите разобрать что не так? pow не предлагать! #include &quot;stdafx.h&quot; ...

Возведение в степень - C++
Почему, когда я пытаюсь возвести в квадрат x с типом int, то получается 24, а когда с типом double, то все хорошо и получается 25? ...

Возведение степень - C++
int n=2; float i; i=pow(((n-1)/(n+1)), n*(n-1)); Выдает ошибку Domain Error. В чем дело и есть ли альтернатива pow() ?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
TenGen
Будущее рядом
97 / 95 / 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
Сообщений: 113
29.04.2014, 00:24  [ТС] #3
Так и сделаю... Постараюсь выкладывать сюда по мере написания остальное.
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 113
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;
}
Проверьте, пожалуйста.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2014, 16:44
Привет! Вот еще темы с ответами:

Возведение в степень - C++
Вам конечно это покажется тупой проблемой, но всё же. Напишите пожалуйста как возводить в степень на си и пример. В инете что ищу всё на...

Возведение в степень - C++
Подскажите, как написать программу возведения 2-ки в миллионную степень и вывести результат на экран. #include &lt;stdio.h&gt; #include...

возведение в степень - C++
Всем привет кто обитает на сеем форуме)) учу с++ столкнулся с проблемой, не могу написать программу которая возводит введённое с...

Возведение в степень - C++
напишите программный код для С++ Builder


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.05.2014, 16:44
Ответ Создать тему
Опции темы

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