Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - класс вектор

Ответить
Настройки темы
C/C++ - класс вектор

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


помогите плиз:

сформировать класс вектор реализующий все математические операции с векторами (сложение, вычитание, умножение и получение модуля)

Отправлено: 00:31, 10-12-2007

 

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


кто может, помогите пожалуйста, курсак горит!!!

Отправлено: 17:12, 10-12-2007 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить 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
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


root_777, может надо было на лекции ходить? Говорят, помогает. Ну или там, у девочек-отличниц поспрашивать, за мороженное. На крайний случай можно спросить у гугла или яндекса, они много знают.

-------
http://ivank.ru


Отправлено: 00:32, 11-12-2007 | #4


Аватара для Diseased Head

Ветеран


Сообщения: 881
Благодарности: 55

Профиль | Отправить PM | Цитировать


root_777, курсак у него горит. Нафига ты тогда учишся? Здесь же всё просто.

Для начала поясни. Имеются ввиду вектора на плоскости, в пространстве или в N-мерном пространстве?

И откуда этот код? Меня смущает конструктор.

-------
Знаю точно, что я есть. Остальное, всё, не точно.
Возможное - невозможно! Но невозможное - возможно, но нужна жертва соразмерная.


Отправлено: 00:53, 11-12-2007 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ivank:
root_777, может надо было на лекции ходить? Говорят, помогает. Ну или там, у девочек-отличниц поспрашивать, за мороженное. На крайний случай можно спросить у гугла или яндекса, они много знают. »
иногда на заочке много не объясняют, а иногда вообще ничего не объясняют
а гугл и яндекс говорят что такое есть, но ни одного примера нет, а перечитывать сотни страниц нет времени. вот и пыхтю...

Цитата Diseased Head:
root_777, курсак у него горит. Нафига ты тогда учишся? Здесь же всё просто.
Для начала поясни. Имеются ввиду вектора на плоскости, в пространстве или в N-мерном пространстве?
И откуда этот код? Меня смущает конструктор. »
Не моя специальность программы на СИшке писать - немного другой профиль. А код этот мне на другом форуме подсунули...

Ежели кто в силах помочь - мой АйСиКъйю: 215968771
буду благодарен по гроб жизни своих прапраправнуков

Отправлено: 01:33, 11-12-2007 | #6


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить 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


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


root_777,
Вот ссылка ( Описание классов Матрица и Вектор (Линейная алгебра) ), там тебе будет полный "Фарш" по классу Вектор, какой нужен конструктор...
Вот ещё ссылка на топик на форуме, девушка задавала задачку аналогичную, мож там чего найдёшь...
Такой Вариант, ну и на всякий случай вложу файл... Мож пригодится?!
Правда, Твоя реализация класса Вектор очень смущает, если нужно так много операций... Факт!

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 25-04-2008 в 14:57.


Отправлено: 21:31, 11-12-2007 | #8


Аватара для Diseased Head

Ветеран


Сообщения: 881
Благодарности: 55

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - класс вектор

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход