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

Перемножение матриц - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пояснить работу цикла http://www.cyberforum.ru/cpp-beginners/thread1019217.html
Привет всем Ребята помогите расскажите мне как работает этот Код точнее команда for в нете инфы много ну ни как не могу понять #include <iostream> using namespace std; int main() { int i; // счетчик цикла int sum = 0; // сумма чисел от 1 до 1000. setlocale(0, ""); for (i = 1; i <= 1000; i++) // задаем начальное значение 1, конечное 1000 и задаем шаг цикла - 1. {
C++ Вывод массива Не могу вывести массив после нахождения суммы. Прошу помочь или подкиньте-ка идею) void c(int **m, int s, int r) { for (int j = 0; j < r; j++) { int sum = 0; for (int i = 0; i < s; i++) { sum=sum+m; http://www.cyberforum.ru/cpp-beginners/thread1019211.html
Найти разницу в днях C++
Найти разницу в днях между двумя заданными датами. Даты вводить с клавиатуры. Не знаю как написать,возникают вопросы , а как быть с высокосными годами, разным количеством дней в месяцах? И как рассчитывать разницу в днях, переводить введенную дату в часы? а потом обратно в дни? или как?
Выделить подстроку, задающую вещественное число с фиксированной точкой C++
Задание: Из строки, состоящей из букв, цифр, запятых, точек, знаков + и – , выделить подстроку, задающую вещественное число с фиксированной точкой. Не знаю как мне в программе перебрать символы,чтобы отбирало именно цифры.(есть ли какая-либо команда) Начало программы: #include <string.h> #include <iostream.h> #include <conio.h> void main() { int n, i,j, d,;
C++ В одномерном массиве B (n) заменить нулевые элементы на значение индексов этих элементов, где 0 <= n <= 80. http://www.cyberforum.ru/cpp-beginners/thread1019191.html
Помогите разобраться с задачей. За ранее спасибо! В одномерном массиве B (n) заменить нулевые элементы на значение индексов этих элементов, где 0 <= n <= 80.
C++ в тексте который считан из файла выбрать предложения с заданным числом строк Подскажите, как в тексте который считан из файла выбрать предложения с заданным числом строк. Прочитал Павловскую ( в т.ч. и практикум) вроде похожие примеры, но как не пробовал ничего не выходит. Буду очень признателен. Хотя бы принцип и с помощью каких функций и циклов это сделать. Заранее благодарю. подробнее

Показать сообщение отдельно
ПерС
366 / 282 / 84
Регистрация: 05.11.2013
Сообщений: 806
Записей в блоге: 5
Завершенные тесты: 1
26.11.2013, 08:00     Перемножение матриц
Цитата Сообщение от LeeZa Посмотреть сообщение
Как сделать перегрузку *= для матриц ?!
вот этот класс, кажись, работал, там перегрузка *= и еще много чего
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include <iostream>
#include <stdlib.h>
 
class MATRIX {
 public:
  unsigned char **c;
  int n,m;
  MATRIX () : n(0), m(0) {};
  MATRIX (int r=2);
  MATRIX (int n0=2, int m0=2);
  MATRIX (const MATRIX &);
  ~MATRIX();
  void operator = (MATRIX &);
  void operator += (MATRIX &);
  void operator -= (MATRIX &);
  void operator *= (MATRIX &);
  void operator += (unsigned char);
  void operator -= (unsigned char);
  void operator *= (unsigned char);
  MATRIX operator + (MATRIX &);
  MATRIX operator - (MATRIX &);
  MATRIX operator * (MATRIX &);
  MATRIX operator + (unsigned char);
  MATRIX operator - (unsigned char);
  MATRIX operator * (unsigned char);
  unsigned char * operator [] (int i) { return c[i]; }
  void show (char *);
};
 
MATRIX::MATRIX (int r) {
 new MATRIX (r,r);
}
 
MATRIX::MATRIX (int n0,int m0) {
 n=n0; m=m0;
 c= new unsigned char * [n];
 for (int i=0; i<n; i++)
  c[i]=new unsigned char [m];
}
 
MATRIX::~MATRIX () {
 for (int i=n-1; i>-1; i--) delete c[i];
 delete c;
}
 
void MATRIX::operator = (MATRIX &p) {
 n=p.n; m=p.m;
 for (int i=0; i<n; i++) for (int j=0; j<m; j++) c[i][j]=p.c[i][j];
}
 
MATRIX::MATRIX (const MATRIX &p) {
 n=p.n; m=p.m;
 c= new unsigned char * [n];
 for (int i=0; i<n; i++) c[i]=new unsigned char [m];
 for (i=0; i<n; i++) for (int j=0; j<m; j++) c[i][j]=p.c[i][j];
}
 
MATRIX MATRIX::operator + (MATRIX &p) {
 MATRIX r=MATRIX(n,m);
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) r.c[i][j]=c[i][j]+p.c[i][j];
 return r;
}
 
MATRIX MATRIX::operator - (MATRIX &p) {
 MATRIX r=MATRIX(n,m);
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) r.c[i][j]=c[i][j]-p.c[i][j];
 return r;
}
 
MATRIX MATRIX::operator * (MATRIX &p) {
 MATRIX r=MATRIX(n,p.m);
 int i,j,k;
 for (i=0; i<n; i++)
 for (j=0; j<p.m; j++) {
  r.c[i][j]=0;
  for (k=0; k<m; k++) r.c[i][j]+=c[i][k]*p.c[k][j];
 }
 return r;
}
 
MATRIX MATRIX::operator + (unsigned char p) {
 MATRIX r=MATRIX(n,m);
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) r.c[i][j]=c[i][j]+p;
 return r;
}
 
MATRIX MATRIX::operator - (unsigned char p) {
 MATRIX r=MATRIX(n,m);
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) r.c[i][j]=c[i][j]-p;
 return r;
}
 
MATRIX MATRIX::operator * (unsigned char p) {
 MATRIX r=MATRIX(n,m);
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) r.c[i][j]=c[i][j]*p;
 return r;
}
 
void MATRIX::operator += (MATRIX &p) {
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) c[i][j]+=p.c[i][j];
}
 
void MATRIX::operator -= (MATRIX &p) {
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) c[i][j]-=p.c[i][j];
}
 
void MATRIX::operator *= (MATRIX &p) {
 MATRIX r=MATRIX(p.n,p.m);
 for (int i=0; i<p.n; i++)
 for (int j=0; j<p.m; j++) {
  r.c[i][j]=0;
  for (int k=0; k<m; k++) r.c[i][j]+=c[i][k]*p.c[k][j];
 }
 for (i=0; i<p.n; i++)
 for (int j=0; j<p.m; j++) c[i][j]=r.c[i][j];
}
 
void MATRIX::operator += (unsigned char p) {
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) c[i][j]+=p;
}
 
void MATRIX::operator -= (unsigned char p) {
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) c[i][j]-=p;
}
 
void MATRIX::operator *= (unsigned char p) {
 int i,j;
 for (i=0; i<n; i++)
 for (j=0; j<m; j++) c[i][j]*=p;
}
 
void MATRIX::show (char *s) {
 cout << s << "\n";
 int i,j;
 for (i=0; i<n; i++) {
  for (j=0; j<m; j++) cout << c[i][j] << " ";
  cout << "\n";
 }
}
 
void main () {
 MATRIX a(2,2);
 a[0][0]='A'; a[0][1]='B';
 a[1][0]='C'; a[1][1]='D';
 a.show ("Заполнение матрицы A" );
 MATRIX b(2,2);
 b[0][0]=' '; b[0][1]='!';
 b[1][0]='1'; b[1][1]='0';
 b.show ("Заполнение матрицы B" );
 MATRIX c=b+a;
 c.show ("C=B+A");
 MATRIX d = a + 1;
 d.show ("D=A+1");
 MATRIX e = a * b;
 e.show ("E=A*B");
 
 cout << "Enter to continue..."; cin.get();
 a*=2;
 a.show ("A*=2");
 b+=b;
 b.show ("B+=B");
 b-=b*2;
 b.show ("B-=B*2");
 d*=d;
 d.show ("D*=D");
 system("PAUSE");
}
 
Текущее время: 12:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru