Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 15:39   #1
Proghelper
 
Регистрация: 27.10.2010
Сообщений: 6
По умолчанию class vector

Задание:Разработать класс вектор и реализовать оперцию векторного умножения.

Прогу написал , но відает ошибку..
писал по примеру , не судите строго%)
please help.

Собственно вот:

class vector {
float components[3];
public:
void Init(float&,float&,float&);
vector operator*(vector t);
vector operator=(vector t);
vector Sub(vector&);
float GetX(){return components[0];}
float GetY(){return components[1];}
float GetZ(){return components[2];}
void read();
};
vector vector::sub(vector &vec) }
vector temp=*this;
for(int i=0; i<3; i++){
temp.components[i]-=vec.components[i];
}
return temp;
}
void vector::Init(float &x,float &y,float &z) {
components[0]=x;
components[1]=y;
components[2]=z;
}
void vector::read(void) {
float x,y,z;
cout<<"Enter x component";cin>>x;
cout<<"Enter y component";cin>>y;
cout<<"Enter z component";cin>>z;
this->Init(x,y,z);}
main (void) {
vector v1,v2,v3;
v3=v1*v2;
for (int i=0; i<3; i++)
cout<<v3[i]<<"";
cout<<"\n";
v3.show();
getch();
}
Proghelper вне форума Ответить с цитированием
Старый 27.10.2010, 17:06   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

какую ошибку выдает?
p51x вне форума Ответить с цитированием
Старый 27.10.2010, 17:50   #3
Proghelper
 
Регистрация: 27.10.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
какую ошибку выдает?
Кароче выбивает с проги
я чуствую что то .. где то пропустил..
пока еще не розобрался
Proghelper вне форума Ответить с цитированием
Старый 27.10.2010, 18:46   #4
__Demon__
Пользователь
 
Аватар для __Demon__
 
Регистрация: 13.08.2009
Сообщений: 37
По умолчанию

Короче вот:
Код:
#include <iostream>
#include <memory>
#include <stdlib.h>

class CVector {
public:
	// Конструктор
	CVector(float x = 0.0, float y = 0.0, float z = 0.0)
		: m_x(x), m_y(y), m_z(z)
	{
	}

	// Конструктор копии
	CVector(const CVector &v)
		: m_x(v.m_x), m_y(v.m_y), m_z(v.m_z)
	{
	}
	
	// Функция установки компонент
	void Set(float x,float y, float z)
	{
		m_x = x;
		m_y = y;
		m_z = z;
	}

	// Ну тут всё и так понятно
	float GetX()
	{
		return m_x;
	}

	float GetY()
	{
		return m_y;
	}

	float GetZ()
	{
		return m_z;
	}

	// Функция вычитания векторов
	CVector operator-(const CVector &v)
	{
		// Следующая строчка анологична функциям new и
		// delete, только изящнее ;)
		std::auto_ptr<CVector> temp(new CVector(*this));

		temp->m_x -= v.m_x;
		temp->m_y -= v.m_y;
		temp->m_z -= v.m_z;

		return *temp;
	}

	// Вункция умножения векторов
	CVector operator*(const CVector &v)
	{
		std::auto_ptr<CVector> temp(new CVector(*this));

		temp->m_x *= v.m_x;
		temp->m_y *= v.m_y;
		temp->m_z *= v.m_z;

		return *temp;
	}

	// Функция присваивания одного вектора другому
	const CVector &operator=(const CVector &v)
	{
		m_x = v.m_x;
		m_y = v.m_y;
		m_z = v.m_z;

		return *this;
	}

	// - // -
	void Read()
	{
		float x, y, z;

		std::cout<<"Enter x component";
		std::cin>>x;
		std::cout<<"Enter y component";
		std::cin>>y;
		std::cout<<"Enter z component";
		std::cin>>z;
	}
	
	// Функция вывода на экран
	void Write()
	{
		std::cout << m_x << " " 
			<< m_y << " " 
			<< m_z << std::endl;
	}

private:
	float m_x;
	float m_y;
	float m_z;
};
	
int main (void) 
{
	CVector v1(10.0, 20.0, 30.0), 
		v2(4.0, 3.0, 2.0), v3;

	v3 = v1 * v2;

	std::cout << "v1: ";
	v1.Write();
	std::cout << "v2: ";
	v2.Write();
	std::cout << "v3: ";
	v3.Write();

	system("PAUSE");
	return 0;
}
Я кое-что переделал и кое-что испрвил.
__Demon__ вне форума Ответить с цитированием
Старый 09.11.2010, 22:40   #5
Proghelper
 
Регистрация: 27.10.2010
Сообщений: 6
По умолчанию

да я ему так и написал..
НО препод сказал что бы задавать координаты с клавы (
я вот нимагу дупля дать..
Proghelper вне форума Ответить с цитированием
Старый 09.12.2010, 21:31   #6
Proghelper
 
Регистрация: 27.10.2010
Сообщений: 6
По умолчанию

Вот нашёл код для ВВ\ВВ:
Код:
friend istream& operator >> (istream& is, Vector& v)
        {                                   
       for(size_t i = 0; i < v.size; i++)
       {
        cout << "Input vect[" << i << "]:\t";
        is >> v.vect[i];
       }
       return is;
    }
    friend ostream& operator << (ostream& os, const Vector& v)
        {                                   
         os << "Vector:   (";
         for(size_t i = 0; i < v.size; i++)
         {
            os << v.vect[i];
            if(i == v.size - 1)
            os << ")\n";
           else
            os << ", ";
         }
        return os;
    }    size_t GetSize() const;
Ток вот не знаю как мне его вставить в мою прогу ...
Подскажите пжзл.
Proghelper вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
класс Vector fclmhooligan Общие вопросы по Java, Java SE, Kotlin 3 05.04.2011 02:40
#include <vector> GBAXA Visual C++ 12 15.08.2010 11:25
vector NiCola999 Помощь студентам 5 26.02.2010 08:37
std::vector ciaonataha Общие вопросы C/C++ 1 10.05.2009 15:50
Вопрос по <vector> kezman Общие вопросы C/C++ 1 13.08.2008 21:48