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

Класс матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму элементов строки матрицы, в которой расположен элемент с наименьшим значением http://www.cyberforum.ru/cpp-beginners/thread210108.html
ребята очень нужна помощь при выводе матрицы.Кто сможет помоч если сможет.Нада MFC AppWizard.exe проект и вот задание Дана действительная матрица размера m*n. Найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент един-ственный. С меня пивко... Добавлено через 5 часов 59 минут откликнетесь кто нибудь))
C++ перевести код с паскаля на С++ Доброго времени суток! у меня большая просьба: имеется код на паскале, программа, которая рисует дерево, из каждой ветки растут новые 2. Помогите пожалйста перевести этот код на С++. Заранее спасибо! Добавлено через 36 секунд Program Tree; Uses Graph, CRT; var D, R, e : Integer; i, j : Word; Ar : array of Real; Ar1 : array of Real; http://www.cyberforum.ru/cpp-beginners/thread210092.html
C++ "Замок" (на перебор с возвратом)
Написать программу, которая определяет: количество комнат в замке; площадь наибольшей комнаты; какую стену в замке следует удалить, чтобы получить комнату наибольшей площади. Замок условно разделен на M*N клеток (М<=50, N<=50). Каждая такая клетка может иметь от 0 до 4 стен.
Модуль расчёта пространственного заряда C++
Модуль расчёта пространственного заряда PIC-методом для ячеек конечно-разностной схемы и CIC-методом для конечно-разностной ячейки Исходные данные: 1) Координаты и размеры ячеек-параллелепипедов. 2) Набор трубок тока в виде последовательностей отрезков прямой с заданными параметрами: – координаты концов отрезков; – распределение заряда на каждом отрезке. парни может ктонибудь...
C++ Надо решить "Дано трехзначное число. Определить входит ли в него цифра 4." http://www.cyberforum.ru/cpp-beginners/thread209921.html
Дано трехзначное число. Определить входит ли в него цифра 4.
C++ Фундоментальные циклы графа Нужна программа на C\C++.по фундоментальным циклам графа,есть прога подобная на паскале но она у меня почемуто не работает...хотя пример взят из книжки где автор утверждает что она работает))) вот она помогите кто чем сможет((( Program GraphCycle; {Фундаментальные циклы графа} uses CRT,DOS; Const nVertex=100; {Максимальное количество вершин} nAdjacent=1000; {Максимальная длина списка... подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.12.2010, 03:03     Класс матриц
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <cassert>
#include <cstddef>
 
template<typename T>
class matrix {
  class row {
    friend class matrix;
 
    row(T* first_cell_in_row, std::size_t size);
 
    T*          first_cell_in_row;
    std::size_t size;
 
  public:
          T& operator[] (std::size_t index);
    const T& operator[] (std::size_t index) const;
  };
 
  T*          the_array;
  std::size_t row_count;
  std::size_t col_count;
 
public:
  matrix(std::size_t row_count, std::size_t col_count);
  matrix(const matrix& other);
 
  ~matrix() { delete [] the_array; }
 
  std::size_t rowCount() const { return row_count; }
  std::size_t colCount() const { return col_count; }
 
  matrix& operator= (const matrix& other);
 
        row operator[] (std::size_t index);
  const row operator[] (std::size_t index) const;
};
 
template<typename T>
matrix<T>::row::row(T* first_cell_in_row, std::size_t size)
: first_cell_in_row(first_cell_in_row)
, size             (size) {
}
 
template<typename T>
T& matrix<T>::row::operator[] (std::size_t index) {
  assert(index < size);
 
  return first_cell_in_row[index];
}
 
template<typename T>
const T& matrix<T>::row::operator[] (std::size_t index) const {
  assert(index < size);
 
  return first_cell_in_row[index];
}
 
template<typename T>
matrix<T>::matrix(std::size_t row_count, std::size_t col_count)
: row_count(row_count)
, col_count(col_count)
, the_array(new T[row_count * col_count]){
  for (std::size_t i = 0; i < rowCount() * colCount(); ++i)
    the_array[i] = T();
}
 
template<typename T>
matrix<T>::matrix(const matrix& other)
: row_count(other.rowCount())
, col_count(other.colCount())
, the_array(new T[other.rowCount() * other.colCount()]) {
  for (std::size_t i = 0; i < rowCount() * colCount(); ++i)
    the_array[i] = other.the_array[i];
}
 
template<typename T>
matrix<T>& matrix<T>::operator= (const matrix& other) {
  T* the_new_array = new T[other.rowCount() * other.colCount()];
 
  for (std::size_t i = 0; i < rowCount() * colCount(); ++i)
    the_new_array[i] = other[i];
 
  delete [] the_array;
 
  the_array = the_new_array;
  row_count = other.row_count;
  col_count = other.col_count;
}
 
template<typename T>
typename matrix<T>::row matrix<T>::operator[] (std::size_t index) {
  assert(index < rowCount());
 
  return row(the_array + (colCount() * index), colCount());
}
 
template<typename T>
const typename matrix<T>::row matrix<T>::operator[] (std::size_t index) const {
  assert(index < rowCount());
 
  return row(the_array + (colCount() * index), colCount());
}
 
template<typename T>
const matrix<T> operator+ (const matrix<T>& lhs, const matrix<T>& rhs) {
  assert(lhs.rowCount() == rhs.rowCount() && 
         lhs.colCount() == rhs.colCount());
  
  matrix<T> result(lhs.rowCount(), lhs.colCount());
 
  for (std::size_t i = 0; i < result.rowCount() * result.colCount(); ++i)
        result.the_array[i] = lhs.the_array[i] + rhs.the_array[i];
 
  return result;
}
 
template<typename T>
const matrix<T> operator- (const matrix<T>& lhs, const matrix<T>& rhs) {
  assert(lhs.rowCount() == rhs.rowCount() && 
         lhs.colCount() == rhs.colCount());
  
  matrix<T> result(lhs.rowCount(), lhs.colCount());
 
  for (std::size_t i = 0; i < result.rowCount() * result.colCount(); ++i)
        result.the_array[i] = lhs.the_array[i] - rhs.the_array[i];
 
  return result;
}
 
template<typename T>
const matrix<T> operator* (const matrix<T>& lhs, const matrix<T>& rhs) {
  assert(lhs.colCount() == rhs.rowCount());
  
  matrix<T> result(lhs.rowCount(), rhs.colCount());
 
  for (std::size_t i = 0; i < result.rowCount(); ++i)
    for (std::size_t j = 0; j < result.colCount(); ++j)
      for (std::size_t k = 0; k < lhs.colCount(); ++k)
        result[i][j] += lhs[i][k] * rhs[k][j];
 
  return result;
}
 
Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru