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

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

Войти
Регистрация
Восстановить пароль
 
Duivel
3 / 3 / 0
Регистрация: 11.02.2013
Сообщений: 19
#1

Найти суму двух квадратных матриц разного размера - C++

11.02.2013, 01:02. Просмотров 577. Ответов 6
Метки нет (Все метки)

Найти суму двух квадратных матриц разного размера.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2013, 01:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти суму двух квадратных матриц разного размера (C++):

Из двух квадратных матриц создать третью, перемножив элементы первых двух согласно условию - C++
Для двух квадратных матриц нужно создать третюю матрицу, элементы которой которой должны равняться произведению элементов соответствующей...

Перемножение двух квадратных целочисленных матриц - C++
Помогите написать прогу: Написать подпрограмму void mult(int a, int b, int c, int N); для перемножения двух квадратных...

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

Найти в каждой из трёх квадратных матриц максимальный элемент главной диагонали - C++
Помогите решить задачу: Даны три квадратные матрицы разных размеров. Найти в каждой из них максимальный элемент главной диагонали.(просят...

Умножение квадратных матриц - C++
Задача состоит в том, чтобы умножать квадратные матрицы двумя способами, А - записывая в матрицу С. Б - перезаписывая в матрицу А....

Умножение квадратных матриц - C++
Функция умножения: void Multiplication (int a, int b,int c){ for(int i=0,n=0; i<=N-1&& n<=N-1; i++, n++){ c=0; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 04:06 #2
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    // FirstLength, FirstHeight, SecondLength,
    // SecondHeight, NewLength, NewHeight
    int FL, FH, SL, SH, NL, NH; 
 
    std::cout << "1-st matrix:\n"
        "length: ";
    std::cin >> FL;
    std::cout << "height: ";
    std::cin >> FH;
 
    std::cout << "2-st matrix:\n"
        "length: ";
    std::cin >> SL;
    std::cout << "height: ";
    std::cin >> SH;
 
    // Генерируем матрицы
    int mx1[FH][FL], mx2[SH][SL];
    
    // Генерируем случайные значения, выводим результат
    srand(time(0));
    std::cout << "\nFirst matrix:\n";
    for (int y = 0; y < FH; ++y) // 1-st
        for (int x = 0; x < FL; ++x) {
            std::cout << (mx1[y][x] = rand() % 100);
            std::cout << ((x % FL == FL-1) ? '\n' : ' ');
        }
 
    std::cout << "\nSecond matrix:\n";
    for (int y = 0; y < SH; ++y) // 2-st
        for (int x = 0; x < SL; ++x) {
            std::cout << (mx2[y][x] = rand() % 100);
            std::cout << ((x % SL == SL-1) ? '\n' : ' ');
        }
 
    // Вычисляем размер новой матрицы
    NL = (FL >= SL) ? FL : SL;
    NH = (FH >= SH) ? FH : SH;
 
    int res[NH][NL];
 
    // Копируем и отображаем результат
    int temp_mx1, temp_mx2;
    std::cout << "\nResult:\n";
    for (int y = 0; y < NH; ++y) // new
        for (int x = 0; x < NL; ++x) {
           temp_mx1 = (y < FH && x < FL) ? mx1[y][x] : 0;
           temp_mx2 = (y < SH && x < SL) ? mx2[y][x] : 0;
           std::cout << (res[y][x] = temp_mx1 + temp_mx2);
           std::cout << ((x % NL == NL-1) ? '\n' : ' ');
        }
 
    return 0;
}
0
nonedark2008
909 / 648 / 134
Регистрация: 28.07.2012
Сообщений: 1,760
11.02.2013, 04:10 #3
Цитата Сообщение от xtorne21st Посмотреть сообщение
int mx1[FH][FL], mx2[SH][SL];
Не сработает. Память нужно выделять динамически. А также, матрицы должны быть квадратными.
1
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 16:56 #4
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Не сработает. Память нужно выделять динамически. А также, матрицы должны быть квадратными.
Можешь откомпилировать и посмотреть, работает или нет. Это и есть самая что ни на есть квадратная матрица.
0
Байт
Эксперт C
16063 / 10332 / 1540
Регистрация: 24.12.2010
Сообщений: 19,478
11.02.2013, 17:03 #5
Цитата Сообщение от Duivel Посмотреть сообщение
Найти суМму двух квадратных матриц разного размера.
В классической алгебре не определено. Имеешь право доопределить сам, но мы должны знать - как.
0
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
11.02.2013, 17:07 #6
Цитата Сообщение от xtorne21st Посмотреть сообщение
Можешь откомпилировать и посмотреть, работает или нет.
это не есть правильно. даже если и компилируется.
как правильно заметил ув. nonedark2008, память нужно выделять динамически.
ну или, как минимум, заранее инициализировать матрицы с размером, к примеру, 100.
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.02.2013, 18:15 #7
Откомпилировал с ключём -Wall -pedantic. Действительно выдало предупреждение. Странно раньше этого не замечал.
Цитата Сообщение от Ev[G
eN;4120501]это не есть правильно
Можете объяснить, почему это не правильно, ведь результат работы вполне нормальный.

Добавлено через 6 минут
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Не сработает. Память нужно выделять динамически. А также, матрицы должны быть квадратными.
Прошу прощения, матрица действительно не квадаратная, век живи век учись, как говорится...

Добавлено через 26 минут
Принимая во внимания все наставления и рекомендации, а также на основании того, что при не соответствии диапазона одной из матриц, берётся значение наиболешей:
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
#include <iostream>
#include <ctime>
#include <cstdlib>
 
int main()
{
    int FM, SM, NM; 
 
    std::cout << "1-st matrix:\n"
        "Size: ";
    std::cin >> FM;
    std::cout << "2-st matrix:\n"
        "Size: ";
    std::cin >> SM;
 
    // Генерируем матрицы
    int** mx1 = new int*[FM];
    for (int i = 0; i < FM; ++i)
        mx1[i] = new int[FM];
 
    int** mx2 = new int*[SM];
    for (int i = 0; i < SM; ++i)
        mx2[i] = new int[SM];
 
    // Генерируем случайные значения, выводим результат
    srand(time(0));
    std::cout << "\nFirst matrix:\n";
    for (int y = 0; y < FM; ++y) // 1-st
        for (int x = 0; x < FM; ++x) {
            std::cout << (mx1[y][x] = rand() % 100);
            std::cout << ((x % FM == FM-1) ? '\n' : ' ');
        }
 
    std::cout << "\nSecond matrix:\n";
    for (int y = 0; y < SM; ++y) // 2-st
        for (int x = 0; x < SM; ++x) {
            std::cout << (mx2[y][x] = rand() % 100);
            std::cout << ((x % SM == SM-1) ? '\n' : ' ');
        }
 
    // Вычисляем размер новой матрицы и выделям память
    NM = (FM >= SM) ? FM : SM;
    int** res = new int*[NM];
    for (int i = 0; i < NM; ++i)
        res[i] = new int[NM];
 
    // Копируем и отображаем результат
    int temp_mx1, temp_mx2;
    std::cout << "\nResult:\n";
    for (int y = 0; y < NM; ++y) // new
        for (int x = 0; x < NM; ++x) {
           temp_mx1 = (y < FM && x < FM) ? mx1[y][x] : 0;
           temp_mx2 = (y < SM && x < SM) ? mx2[y][x] : 0;
           std::cout << (res[y][x] = temp_mx1 + temp_mx2);
           std::cout << ((x % NM == NM-1) ? '\n' : ' ');
        }
 
    // Освобождаем память
    for (int i = 0; i < FM; ++i)
        delete [] mx1[i];
    delete [] mx1;
 
    for (int i = 0; i < SM; ++i)
        delete [] mx2[i];
    delete [] mx2;
 
    for (int i = 0; i < SM; ++i)
        delete [] res[i];
    delete [] res;
 
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2013, 18:15
Привет! Вот еще темы с ответами:

функции для квадратных матриц - C++
Вообщем нужна помощь по написаниям функции для квадратных матриц, 2 тривиальные (для кого-то) функции и одну не очень) 1)Ввод м-цы ...

Функция генерации квадратных матриц - C++
Составить процедуру генерации (заполнение случайными числами в введенном диапазоне) квадратных матриц: единичной, диагональной,...

Оптимизации алгоритма умножения квадратных матриц - C++
Какой алгоритм используется в мат. пакете Матлаб для умножения квадратных матриц? Даже не сам алгоритм, а идея или хотя бы догадки. ...

Умножение квадратных матриц через указатель - C++
Есть программа, для умножения квадратных матриц, которая работает исправно без использования указателей, а с ними, соответственно, нет В...


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

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

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