|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - класс вектор |
|
C/C++ - класс вектор
|
Новый участник Сообщения: 5 |
помогите плиз:
сформировать класс вектор реализующий все математические операции с векторами (сложение, вычитание, умножение и получение модуля) |
|
Отправлено: 00:31, 10-12-2007 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать кто может, помогите пожалуйста, курсак горит!!!
|
Отправлено: 17:12, 10-12-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать class vector
{ int size; //размер массива int * v; // public: vector(int sz);//конструктор ~vector(); //деструктор friend vector operator+(vector v1,vector v2) // перегруженный бинарный оператор + { // здесь надо сложить два вектора... }; }; может кто-нить знает как... |
Отправлено: 19:32, 10-12-2007 | #3 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать root_777, может надо было на лекции ходить? Говорят, помогает. Ну или там, у девочек-отличниц поспрашивать, за мороженное. На крайний случай можно спросить у гугла или яндекса, они много знают.
|
------- Отправлено: 00:32, 11-12-2007 | #4 |
![]() Ветеран Сообщения: 881
|
Профиль | Отправить PM | Цитировать root_777, курсак у него горит. Нафига ты тогда учишся? Здесь же всё просто.
Для начала поясни. Имеются ввиду вектора на плоскости, в пространстве или в N-мерном пространстве? И откуда этот код? Меня смущает конструктор. |
|
------- Отправлено: 00:53, 11-12-2007 | #5 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Цитата ivank:
а гугл и яндекс говорят что такое есть, но ни одного примера нет, а перечитывать сотни страниц нет времени. вот и пыхтю... Цитата Diseased Head:
Ежели кто в силах помочь - мой АйСиКъйю: 215968771 буду благодарен по гроб жизни своих прапраправнуков |
||
Отправлено: 01:33, 11-12-2007 | #6 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать пришел только к такому:
#ifndef _vector_ #define _vector_ #include <iostream> using namespace std; class vector { int size; int * v; public: vector(int size); ~vector (); friend vector operator+(vector v1, vector v2) { return v1+v2; }; friend vector operator*(vector v1, vector v2) { return v1*v2; }; friend vector operator-(vector v1, vector v2) { return v1-v2; }; friend vector operator%(vector v1, vector v2) { return v1%v2; }; }; #endif но не знаю, правильно ли... |
Отправлено: 02:05, 11-12-2007 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать root_777,
Вот ссылка ( Описание классов Матрица и Вектор (Линейная алгебра) ), там тебе будет полный "Фарш" по классу Вектор, какой нужен конструктор... Вот ещё ссылка на топик на форуме, девушка задавала задачку аналогичную, мож там чего найдёшь... Такой Вариант, ну и на всякий случай вложу файл... Мож пригодится?! Правда, Твоя реализация класса Вектор очень смущает, если нужно так много операций... Факт! |
------- Последний раз редактировалось Drongo, 25-04-2008 в 14:57. Отправлено: 21:31, 11-12-2007 | #8 |
![]() Ветеран Сообщения: 881
|
Профиль | Отправить PM | Цитировать root_777
Цитата:
Ну вот мой вариант, может и слишком просто. Только для вектора в трёхмерном пространстве. Но как уж смог. ![]() #include<math.h> class vector { double x,y,z; public: vector(double vX=0, float vY=0, float vZ=0) { x=vX; y=vY; z=vZ; } // конструктор ~vector (); friend vector operator+(vector a, vector b); //сложение векторов friend vector operator-(vector a, vector b); //вычитание векторов friend vector operator*(vector a, double scalar); //умножение вектора на скаляр friend double operator*(vector a, vector b); //скалярное произведение векторов friend vector operator%(vector a, vector b); //векторное произведение векторов friend double abs(vector a); //модуль вектора }; vector operator+(vector a, vector b) { vector temp; temp.x = a.x + b.x; temp.y = a.y + b.y; temp.z = a.z + b.z; return temp; } vector operator-(vector a, vector b) { vector temp; temp.x = a.x - b.x; temp.y = a.y - b.y; temp.z = a.z - b.z; return temp; } vector operator*(vector a, double scalar) { vector temp; temp.x = a.x * scalar; temp.y = a.y * scalar; temp.z = a.z * scalar; return temp; } double operator*(vector a, vector b) { return a.x*b.x + a.y*b.y + a.z*b.z; } vector operator%(vector a, vector b) { vector Ox(1,0,0), Oy(0,1,0), Oz(0,0,1); return Ox*(a.y*b.z - a.z*b.y) + Oy*(a.z*b.x - a.x*b.z) + Oz*(a.x*b.y - a.y*b.x); } double abs(vector a) { return sqrt(a.x*a.x + a.y*a.y + a.z*a.z); } |
|
------- Последний раз редактировалось Diseased Head, 12-12-2007 в 14:29. Причина: friend перед описанием функций убрал... Отправлено: 00:40, 12-12-2007 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Класс стек и очередь на с++ | aina | Программирование и базы данных | 8 | 30-12-2009 07:54 | |
C/C++ - Класс “ вектор в n-мерном пространстве” | .::.DIMA.::. | Программирование и базы данных | 2 | 27-01-2009 07:40 | |
C/C++ - производный класс | Sky-er | Программирование и базы данных | 4 | 26-01-2009 00:08 | |
класс в dll | lehha | Программирование и базы данных | 1 | 29-05-2006 21:20 | |
Класс string в MS Visual C++ 6.0 | studentrsu | Программирование и базы данных | 1 | 22-03-2004 10:20 |
|