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

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

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

Описать класс матрицы - C++

13.12.2011, 04:00. Просмотров 528. Ответов 1
Метки нет (Все метки)

Описать класс «Матрица», инкапсулирующий в себе данные матрицы и операции для работы с ней. Создать программу (использующую данный класс), позволяющую на выбор пользователя выполнять арифметическое действие.
Требования к программе:
Обязательное наличие в классе:

• конструктора по умолчанию (заполняющего матрицу нулями);
• перегруженной операции «<<», выводящей данные на экран в матричной форме;
• метода возвращающего размер матрицы.

При реализации класса возможно использование обычных массивов, например, размером 10x10 элементов. Возможна перегрузка других операций, если это необходимо для реализации программы. Для вывода информации на экран, необходимо разработать интерактивное меню (простое).

Поиск суммы сумм строк матрицы Создает матрицу заданного размера, заполненную числами, уменьшающимися на 1 от заданного числа.

Кто чем поможет...спасибо заранее...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 04:00     Описать класс матрицы
Посмотрите здесь:

C++ Описать класс Дата
Описать класс Fraction C++
C++ Описать класс «Многоугольник»
C++ Описать класс автомобиль
C++ Описать класс «Календарь»
C++ Описать класс, обеспечивающий представление матрицы
C++ Описать класс «трапеция»
Описать класс Path C++
Описать класс «матрица». Добавить метод, вычисляющий определитель матрицы C++
Описать класс, обеспечивающий представление квадратной матрицы произвольного размера C++
Описать класс “множество” C++
C++ Описать класс Библиотека

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
13.12.2011, 09:36     Описать класс матрицы #2
Цитата Сообщение от russoof Посмотреть сообщение
Поиск суммы сумм строк матрицы Создает матрицу заданного размера, заполненную числами, уменьшающимися на 1 от заданного числа.
Щитооо!? Бредятина какая-то.
"Полет ужа создает крота, поющего баритоном под куполом цирка, уменьшающегося на единицу от заданного числа".

Добавлено через 22 минуты
Ну если отбросить бредятину и все по-минимуму, то как-то так.
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
template <class T>
class Matrix {
 public:
  Matrix(size_t height, size_t width) : height_(height), width_(width),
    data_(new T[width * height]()) {}
  ~Matrix() {
    delete [] data_;
  }
  T &get(size_t row, size_t col) {
    return data_[row * width() + col];
  }
  T &get(size_t row, size_t col) const {
    return data_[row * width() + col];
  }
  void set(size_t row, size_t col, const T &value) {
    data_[row * width() + col] = value;
  }
  size_t width() const {
    return width_;
  }
  size_t height() const {
    return height_;
  }
  friend std::ostream &operator<<(std::ostream &stream, const Matrix &matrix) {
    for (size_t i = 0; i < matrix.height(); ++i) {
      for (size_t j = 0; j < matrix.width(); ++j)
        stream << std::setw(6) << matrix.get(i, j) << " ";
      stream << std::endl;
    }
    return stream;
  }
  T rowSum(size_t row) const {
    T result = 0;
    for (size_t i = 0; i < width(); ++i)
      result += get(row, i);
    return result;
  }
 private:
  // no copy-create
  Matrix(const Matrix &matrix);
  // no assignment
  Matrix &operator=(const Matrix &matrix);
  size_t height_;
  size_t width_;
  T* data_;
};
 
int main(int argc, char *argv[]) {
  srand(time(0));
  Matrix<int> a(5, 5);
  
  for (size_t i = 0; i < a.height(); ++i)
    for (size_t j = 0; j < a.width(); ++j)
      a.set(i, j, rand() % 20);
 
  std::cout << a << std::endl;
 
  int rowsSum = 0;
  for (size_t i = 0; i < a.height(); ++i) {
    rowsSum += a.rowSum(i);
  }
  std::cout << "Sum of rows' sums: " << rowsSum << std::endl;
 
  return 0;
}
Yandex
Объявления
13.12.2011, 09:36     Описать класс матрицы
Ответ Создать тему
Опции темы

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