Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
1

Шаблон функции матрица-матрица

20.03.2019, 18:52. Просмотров 2131. Ответов 10
Метки нет (Все метки)

не понимаю как сделать шаблон для этого функции. Нужно написать для типа int и float.
Операция матрица-матрица.

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
void MartUmnMatr() {
 
    int i, j, N, M; double *a, *b, *c;
    //ввод размеров матрицы
    cout << "N = "; cin >> N;
    cout << "M = "; cin >> M;
    //выделение памяти для матриц
    a = new double[N*M];
    b = new double[N*M];
    c = new double[N*M];
    //ввод матрицы А
    cout << "введите матрицу А" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
        {
            cin >> *(a + i * M + j);
        }
    //ввод матрицы B
    cout << "введите матрицу B" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
        {
            cin >> *(b + i * M + j);
        }
    //вычисление матрицы C=A+B
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
            *(c + i * M + j) = *(a + i * M + j) * *(b + i * M + j);
    //ввод матрицы С
    cout << "матрица С:" << endl;
    for (i = 0; i < N; cout << endl, i++)
        for (j = 0; j < M; j++)
            cout << *(c + i * M + j) << "\t";
    //освобождение памяти
    delete[]a;
    delete[]b;
    delete[]c;
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2019, 18:52
Ответы с готовыми решениями:

Матрица перехода между двумя системами координат в 2D
Есть 2 системы координат в 2D пространстве. Есть координаты 2 точек в этих системах координат (как...

Матрица
подскажите пожалуста где ошибка { int a, i, j, b; for (i=0;i&lt;4;i++) for(j=0;j&lt;4;j++){ a=...

матрица
задана прямоугольная матрица. найти наибольший и наименьший элементы матрицы и поменять их местами...

Матрица
Есть матрица, которая генерируется случайным образом Нужно найти сумму ее отрицательных элементов ...

10
Мозгоправ
1588 / 926 / 423
Регистрация: 01.10.2018
Сообщений: 1,934
Записей в блоге: 2
20.03.2019, 20:45 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
template <typename T>
void MartUmnMatr() {
 
    int i, j, N, M; T *a, *b, *c;
    //ввод размеров матрицы
    cout << "N = "; cin >> N;
    cout << "M = "; cin >> M;
    //выделение памяти для матриц
    a = new T[N*M];
    b = new T[N*M];
    c = new T[N*M];
    //ввод матрицы А
    cout << "введите матрицу А" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
        {
            cin >> *(a + i * M + j);
        }
    //ввод матрицы B
    cout << "введите матрицу B" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
        {
            cin >> *(b + i * M + j);
        }
    //вычисление матрицы C=A+B
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
            *(c + i * M + j) = *(a + i * M + j) * *(b + i * M + j);
    //ввод матрицы С
    cout << "матрица С:" << endl;
    for (i = 0; i < N; cout << endl, i++)
        for (j = 0; j < M; j++)
            cout << *(c + i * M + j) << "\t";
    //освобождение памяти
    delete[]a;
    delete[]b;
    delete[]c;
 
}
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
21.03.2019, 11:38  [ТС] 3
а что вы здесь сделали?
0
Мозгоправ
1588 / 926 / 423
Регистрация: 01.10.2018
Сообщений: 1,934
Записей в блоге: 2
21.03.2019, 14:23 4
Цитата Сообщение от Николай16 Посмотреть сообщение
сделать шаблон для этого функции
То, что вы просили.
Цитата Сообщение от Николай16 Посмотреть сообщение
не понимаю как
А с этим попробуйте разобраться сами.
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
21.03.2019, 14:28  [ТС] 5
а как вызвать в инт майн?
0
Мозгоправ
1588 / 926 / 423
Регистрация: 01.10.2018
Сообщений: 1,934
Записей в блоге: 2
21.03.2019, 16:08 6
C++
1
2
    MartUmnMatr<int>();
    MartUmnMatr<float>();
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
21.03.2019, 16:13  [ТС] 7
ругается на float
0
Мозгоправ
1588 / 926 / 423
Регистрация: 01.10.2018
Сообщений: 1,934
Записей в блоге: 2
21.03.2019, 21:36 8
Не знаю. У меня ни на что не ругается.
Вот полный код программы:
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
#include<iostream>
 
using namespace std;
 
template <typename T>
void MartUmnMatr() {
 
    int i, j, N, M; T *a, *b, *c;
    //ввод размеров матрицы
    cout << "N = "; cin >> N;
    cout << "M = "; cin >> M;
    //выделение памяти для матриц
    a = new T[N*M];
    b = new T[N*M];
    c = new T[N*M];
    //ввод матрицы А
    cout << "введите матрицу А" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++) {
            cin >> *(a + i * M + j);
        }
    //ввод матрицы B
    cout << "введите матрицу B" << endl;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++) {
            cin >> *(b + i * M + j);
        }
    //вычисление матрицы C=A+B
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
            *(c + i * M + j) = *(a + i * M + j) * *(b + i * M + j);
    //ввод матрицы С
    cout << "матрица С:" << endl;
    for (i = 0; i < N; cout << endl, i++)
        for (j = 0; j < M; j++)
            cout << *(c + i * M + j) << "\t";
    //освобождение памяти
    delete[]a;
    delete[]b;
    delete[]c;
 
}
 
int main() {
    setlocale(LC_CTYPE, "Russian");
 
    MartUmnMatr<int>();
    MartUmnMatr<float>();
}
0
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
21.03.2019, 21:39  [ТС] 9
Я имею ввиду на введение float элементов матрицы
0
Мозгоправ
1588 / 926 / 423
Регистрация: 01.10.2018
Сообщений: 1,934
Записей в блоге: 2
22.03.2019, 02:00 10
Лучший ответ Сообщение было отмечено Николай16 как решение

Решение


Попробуйте запустить мою программу, закомментировав строку 47.
N и M должны быть целые. Остальные числа - на ваше усмотрение.
1
25 / 9 / 8
Регистрация: 13.12.2015
Сообщений: 474
22.03.2019, 10:25  [ТС] 11
спасибо, так получилось))))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2019, 10:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Матрица
Всем доброго времени суток!!! Надо задать матрицу 6х6, не содержащую 0 и 1. Заменить элементы,...

вещ. матрица...
Помоги программку забацать на C++ Builder: Дана вещ. матрица N на M. Определить числа...

Матрица в памяти
Добрый день! Есть трехмерная матрица matrix . Ее значения float. Заполняю ее так: matrix =...

Матрица в таблице
Ребят ,скиньте пожалуйста код как можно матрицу 6на6 задать в стрингриде??


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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