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

Разработать класс Vector – геометрический вектор произвольной размерности - C++

Восстановить пароль Регистрация
 
Eko20
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 54
25.10.2013, 21:50     Разработать класс Vector – геометрический вектор произвольной размерности #1
Разработать класс Vector – геометрический вектор произвольной размерности (размерность задается в конструкторе вектора). Реализовать метод доступа к элементам вектора. Реализовать операции сложения, вычитания и скалярного произведения векторов, а также нахождение модуля вектора.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14188 / 6203 / 984
Регистрация: 02.05.2013
Сообщений: 10,331
Завершенные тесты: 1
25.10.2013, 23:13     Разработать класс Vector – геометрический вектор произвольной размерности #2
Разрабатывайте, реализовывайте. В чем проблема-то ?
__Александр__
7 / 10 / 0
Регистрация: 17.09.2012
Сообщений: 191
Записей в блоге: 2
26.10.2013, 10:25     Разработать класс Vector – геометрический вектор произвольной размерности #3
вот небольшая наработка; нужно дописать функцию для подсчета модуля
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
#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused
class vect {
public:
   vect(int=0,int=0,int=0,int=0,int=0); //Конструктор
   vect operator+(const vect &) const;   //Сложение
   vect operator-(const vect &) const;//Вычитание
   vect operator*(const vect &); //Умножение вектора на вектор
   vect operator*(const int &); //Умножение скаляра на вектор
   void print() const;//Печать
   private:
   int a,b,c,d,e;
};
//Конструктор:
vect::vect(int a1,int b1,int c1,int d1,int e1)
{
   a = a1;
   b = b1;
   c = c1;
   d = d1;
   e = e1;
}
//Перегруженная операция сложения:
vect vect::operator+(const vect &operand2) const
{
   vect sum;
   sum.a = a + operand2.a;
   sum.b = b + operand2.b;
   sum.c = c + operand2.c;
   sum.d = d + operand2.d;
   sum.e = e + operand2.e;
   return sum;
}
//Перегруженная операция вычитания:
vect vect::operator-(const vect &operand2) const
{
   vect diff;
   diff.a = a - operand2.a;
   diff.b = b - operand2.b;
   diff.c = c - operand2.c;
   diff.d = d - operand2.d;
   diff.e = e - operand2.e;
   return diff;
}
//Перегруженная операция умножения:
vect vect::operator*(const vect &operand2)
{
   vect proizv;
   proizv.a = a * operand2.a;
   proizv.b = b * operand2.b;
   proizv.c = c * operand2.c;
   proizv.d = d * operand2.d;
   proizv.e = e * operand2.e;
   return proizv;
}
//Перегруженная операция умножения:
vect vect::operator*(const int &operand2)
{
   vect proizv;
   proizv.a = a * operand2;
   proizv.b = b * operand2;
   proizv.c = c * operand2;
   proizv.d = d * operand2;
   proizv.e = e * operand2;
   return proizv;
}
//Печать объекта в виде (a,b,c,d,e)
void vect::print() const
{
   cout<<'('<<a<<", "<<b<<", "<<c<<", "<<d<<", "<<e<<')';
}
int main(int argc, char* argv[])
{
   vect x(5,6,7,8,9),y(4,3,2,1,7);
   vect z;
   int scl = 8;
   cout<<"\n Vector 1:   ";
   x.print();
   cout<<"\n Vector 2:   ";
   y.print();
   z = x + y;
   cout<<"\n Slozhenie:   ";
   z.print();
   z = x - y;
   cout<<"\n Vichitanie:  ";
   z.print();
   z = x * y;
   cout<<"\n Vector*Vector:   ";
   z.print();
   z = x * scl;
   cout<<"\n Scalar1:   ";
   z.print();
   z = y * scl;
   cout<<"\n Scalar1:   ";
   z.print();
   getch();
   return 0;
}
Eko20
0 / 0 / 0
Регистрация: 29.02.2012
Сообщений: 54
05.12.2013, 06:26  [ТС]     Разработать класс Vector – геометрический вектор произвольной размерности #4
Цитата Сообщение от __Александр__ Посмотреть сообщение
//Перегруженная операция сложения:
как понять перегруженная операция?
rescr1pt
31 / 32 / 1
Регистрация: 03.10.2011
Сообщений: 61
05.12.2013, 06:32     Разработать класс Vector – геометрический вектор произвольной размерности #5
Цитата Сообщение от Eko20 Посмотреть сообщение
как понять перегруженная операция?
один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются.
http://ru.wikipedia.org/wiki/Перегрузка_операторов
http://habrahabr.ru/post/132014/
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
05.12.2013, 09:50     Разработать класс Vector – геометрический вектор произвольной размерности #6
Цитата Сообщение от __Александр__ Посмотреть сообщение
vect operator*(const int &); //Умножение скаляра на вектор
лучше как friend делать
Yandex
Объявления
05.12.2013, 09:50     Разработать класс Vector – геометрический вектор произвольной размерности
Ответ Создать тему
Опции темы

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