Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
-2 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 109

Написать класс для сложения матриц

12.09.2016, 18:28. Показов 927. Ответов 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//matrix.cpp
#include "matrix.h"
#include <stdio.h>
#include <iostream>
#include "time.h"
#include <string>
#include <conio.h>
 
using namespace std;
namespace program
 
{
 
    matrix::matrix()
    {
    }
 
 
    matrix::~matrix()
    {
    }
    void matrix::set() //функция ввода кол-ва строк и столбцов
    {
        cout << endl << "vvedite kol-vo strok" << endl;
        cin >> n;
        cout << endl << "vvedite kol-vo stolbcov" << endl;
        cin >> m;
        cout << endl;
    }
    void matrix::get()     // функция заполнения и вывода матрицы
    {
        srand((unsigned)time(NULL));
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                mas[i][j] = rand() / (float)32767 * 20 - 10;
            }
        }
        for (int i = 0; i < n; i++) {
            cout << endl;
            for (int j = 0; j < m; j++) {
                cout << mas[i][j] << ends;
            }
        }
    }
    float matrix::setSumM(float*, float*)
    {
        for (int i = 0; i < m; ++i)
            for (int j = 0; j < n; ++j)
                mas3[i][j] = mas[i][j] + mas2[i][j];
        return(mas3[50][50]);
    }
 
 
}
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
//matrix.h
#pragma once
 
namespace program
{
 
    class matrix
    {
    private:
        float mas[50][50], mas2[50][50], mas3[50][50];
        int n, m;
        
    public:
 
        matrix(void);
        void set();
        void get();
        void SumM();
        float setSumM(float*,float*);
    
        ~matrix(void);
    };
 
}
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
//source.cpp
#include "matrix.h"
#include <stdio.h>
#include <iostream>
#include "time.h"
#include <string>
#include <conio.h>
 
using program::matrix;
using namespace std;
 
int main(int argc, char** argv[])
{
    matrix m;
    matrix a;
    matrix mas;
    m.set();
    m.get();
    cout << endl;
    a.set();
    a.get();
 
    _getch();
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.09.2016, 18:28
Ответы с готовыми решениями:

Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц
Кто-нибудь подскажите, пожалуйста написать программу в С++. Ввести класс для работы с прямоугольной матрицей. Реализовать операции: ...

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

Написать класс для сложения массива
Написать класс для сложения массива массив сатический, задан в main.

5
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
12.09.2016, 19:05
pinguin1119,
1) Обрамляйте код в теги CPP.
2) Какая у вас вообще цель этого кода?

Цитата Сообщение от pinguin1119 Посмотреть сообщение
Не знаю как передать результат в главную программу.
Он и находится у вас в главной программе.
0
-2 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 109
12.09.2016, 19:11  [ТС]
Цели кода:написать класс , который складывает матрицы
Не знаю какие аргументы функция setSumM надо передать в этом проблема
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
12.09.2016, 19:23
pinguin1119, Тогда вам скорее всего нужно воспользоваться оператором сложения.
Вот вам "заготовка":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Matr
{
    float mas[50][50];
public:
    Matr operator+(const Matr& rightMatrix)
    {
        Matr ret;
        // в ret упаковать сумму матриц, данной матрицы и полученной в аргументе rightMatrix.
        // mas - массив содержаший данную матриу
        // rightMatrix.mas - массив содержащий матрицу которую прибавляем.
        // ret.mas - массив результирующей матрицы.
        return ret;
    }
};
 
// и с этим оператором вы сможете писать:
// Matr m1, m2;
// Matr m3 = m1 + m2;
0
 Аватар для Крюгер
40 / 60 / 8
Регистрация: 16.11.2012
Сообщений: 460
Записей в блоге: 7
12.09.2016, 23:06
pinguin1119, советую в классе использовать динамический одномерный массив, и алгоритмы писать соответствующие. одномерный массив работает быстрее двумерного. кроме того, рекомендую перегрузить оператор << и >> для удобного вывода ваших матриц. ( благодаря этому можно будет без особых усилий записать результат в текстовый файл)
0
28 / 20 / 11
Регистрация: 10.02.2016
Сообщений: 237
12.09.2016, 23:50
Наверное для начала надо сделать проверку, что у матриц совпадает кол-во строк и столбцов. Запихните матрицы в динамическую память, например в виде кишки, чтобы не делать указатель на указатель, и передавайте указатели и не забудьте в деструкторе delete
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.09.2016, 23:50
Помогаю со студенческими работами здесь

Написать элегантнее класс для сложения больших чисел
Уважаемые тру программисты. Я написал класс для сложения больших чисел. Но вот смотрю на код и понимаю, что написано коряво. Смысл функции...

Создать класс Matrix и функцию сложения матриц
Задача: создать класс Matrix на базе vector&lt;vector&lt;int&gt; &gt;, определить операторную функцию ostream&amp; operator&lt;&lt;(ostream&amp;, const...

Создать класс Matrix и функции умножения и сложения матриц
Создайте класс Matrix на базе вектора vector&lt;vector&lt;int&gt;&gt;. Определите операторную функцию ostream&amp; operator&lt;&lt;(ostream&amp;, const...

Написать процедуру сложения матриц.
ребят нужна помощь Задачи по программированию. Задача решается на двух языках. Задача 7. Написать процедуру сложения матриц. ...

Создать класс матриц с целочисленными элементами и определить операции умножения и сложения
Всем привет, помогите с задачей, заранее спасибо. Создать класс матриц с целочисленными элементами и определить операции умножения и...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru