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

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

Восстановить пароль Регистрация
 
Людмила Юрьевна
Сообщений: n/a
17.05.2013, 15:51     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #1
Кто-нибудь подскажите, пожалуйста написать программу в С++.
Ввести класс для работы с прямоугольной матрицей.
Реализовать операции:
а) сложение двух матриц (операция +);
б) умножение двух матриц (операция *).
Заранее всем большое спасибо!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 15:51     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц
Посмотрите здесь:

Класс для выполнения операций сложения, вычитания и умножения комплексных чисел C++
Составить класс для работы с целочисленной матрицей C++
Создать класс для работы с прямоугольной матрицей размером 3х3 C++
15. Создать класс LongLong для работы с целыми числами. Число должно быть представлено двумя полями.Реализовать арифметические операции C++
C++ Создать класс матриц с целочисленными элементами и определить операции умножения и сложения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
17.05.2013, 16:24     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #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
template<typename T>
class matrix
{
  private:
      T** m_matrix;
      std::size_t m_rows, m_cols;
      std::size_t m_size;
  public:
    typedef T*          iterator;
    typedef const T*    const_iterator;
    iterator        begin()         {return m_matrix[0];}
    iterator        end()           {return m_matrix[0]+m_size;}
    
    explicit matrix(const std::size_t rows = 0, const std::size_t cols = 0): m_rows(rows), m_cols(cols), m_size(m_cols*m_rows)
    {
      if (m_size == 0)
        m_matrix = nullptr;
      m_matrix = new T*[m_rows];
      m_matrix[0] = new T[m_size];
      for (size_t i = 1; i<m_rows; ++i)
          m_matrix[i] = m_matrix[i-1]+m_cols;
    }
    
    ~matrix()
    {
      if (m_matrix)
      {
          delete[] m_matrix[0];
          delete[] m_matrix;
      }
      else
          delete[] m_matrix;
    }
    
    const T* operator[](std::size_t index) const {return m_matrix[index];}
    T* operator[](std::size_t index) {return m_matrix[index];}
    
    void print(const int format = 0) const
    {
      for (std::size_t i = 0; i<m_rows; ++i)
        {
          for (std::size_t j = 0; j<m_cols; ++j)
            std::cout<<std::setw(format)<<m_matrix[i][j]<<" ";
          std::cout<<"\n";
        } 
    }
};
gray_fox
17.05.2013, 17:20
  #3

Не по теме:

Цитата Сообщение от yuron_477 Посмотреть сообщение
C++
1
explicit matrix(const std::size_t rows = 0, const std::size_t cols = 0)
Если я создам matrix instance(5);, то получится матрица 5x0?

ghostfeeling
0 / 0 / 0
Регистрация: 19.12.2013
Сообщений: 18
01.10.2015, 17:18     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #4
Доброго времени суток. Дело в том, что на Visual Studio 2013 в результате выполнения этой программы выдаёт две ошибки.

C++
1
2
3
Ошибка  1   error LNK1561: точка входа должна быть определена
 
Ошибка  2   error MSB6006: "link.exe" завершилась с кодом 1561.
В чём может быть проблема?
Kerry_Jr
Модератор
 Аватар для Kerry_Jr
1868 / 1664 / 580
Регистрация: 14.05.2014
Сообщений: 4,777
Записей в блоге: 1
Завершенные тесты: 5
01.10.2015, 17:24     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #5
ghostfeeling, это код класса, а не целиком программы.
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
01.10.2015, 17:31     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #6
Класс Матрица
И др. ссылки внизу страницы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2015, 18:38     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц
Еще ссылки по теме:

создать класс для работы с матрицей C++
C++ Реализовать функции сложения, вычитания и умножения матриц
C++ Добавить в определение класса Матрица перегрузку операции сложения скаляра с матрицей

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

Или воспользуйтесь поиском по форуму:
gru74ik
Модератор
 Аватар для gru74ik
3124 / 1350 / 167
Регистрация: 20.02.2013
Сообщений: 3,868
Записей в блоге: 18
01.10.2015, 18:38     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц #7
В качестве базиса, можно взять вот этот код, например.
Yandex
Объявления
01.10.2015, 18:38     Ввести класс для работы с прямоугольной матрицей, реализовать операции сложения и умножения матриц
Ответ Создать тему
Опции темы

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