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

C++

Войти
Регистрация
Восстановить пароль
 
Prolol
0 / 0 / 0
Регистрация: 24.11.2010
Сообщений: 4
#1

class vector (sub operation) - C++

09.12.2010, 21:27. Просмотров 758. Ответов 1
Метки нет (Все метки)

Всем привета

Задание:
Реализовать клас вектор , и умножить вектор на вектор..
Проблема состоит в том что я не могу понять как ввести координаты вектора с клавиатуры
Нашёл какй то стремный код для Вв/вв:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
Но что то не получаеться его совместить с моей написаной прогой ..
вот:
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
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
class vect {
public:
   vect(int=0,int=0,int=0,int=0,int=0);   
   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)
{
   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;
}
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;
   cout<<"\n Vector 1:";
   x.print();
   cout<<"\n Vector 2:";
   y.print();
   z = x * y;
   cout<<"\n Vector*Vector:   ";
   z.print();
   getch();
   return 0;
}
Поскажите пожалуйста как это сделать
Кому не трудно и объясните как вы это сделали..
Спасибо за внимание
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2010, 21:27     class vector (sub operation)
Посмотрите здесь:

vector<Struct2{int,vector<struct1>}> или множественное наследование ... C++
C++ Vector ругается на использование классов E2397 и Invalid pointer operation
C++ Указатель на объект вектор в векторе vector < vector<int>* >*
Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') C++
Странная ошибка при создании vector<class> name C++ Builder
vector<[class]> in class и перегрузка (ostream) C++
C++ Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>>
Как инициализировать Vector <class>? C++
Как корректно скопировать vector в vector внутри класса C++
Записать vector<vector<wchar_t>> в текстовый файл C++
C++ Struct / Vector / Expression: vector subscript out of range
C++ При include<vector> не включает и не видит vector

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Manjak
269 / 175 / 7
Регистрация: 12.03.2010
Сообщений: 494
10.12.2010, 00:30     class vector (sub operation) #2
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
namespace Exercise
{
    class Vector
    {
    public:
               Vector( void )
                   : m_begin(),
                     m_end()
               {
               }
 
               Vector( double _dXFirst,  double _dYFirst,
                       double _dXSecond, double _dYSecond )
                   : m_begin(_dXFirst , _dYFirst ),
                     m_end  (_dXSecond, _dYSecond)
               {
               }
 
               Vector( const std::pair<double, double>& _begin,
                       const std::pair<double, double>& _end   )
                   : m_begin(_begin),
                     m_end  (_end)
               {
               }
 
               std::pair<double, double> GetBegin( void ) const
               {
                   return m_begin;
               }
                
               std::pair<double, double> GetEnd( void ) const
               {
                   return m_end;
               }
 
               void SetBegin ( double _dX, double _dY)
               {
                   m_begin = std::make_pair(_dX, _dY);
               }
 
               void SetBegin (const std::pair<double, double>& _begin)
               {
                   m_begin = _begin;
               }
 
               void SetEnd ( double _dX, double _dY)
               {
                   m_end = std::make_pair(_dX, _dY);
               }
 
               void SetEnd (const std::pair<double, double>& _end)
               {
                   m_end = _end;
               }
 
               double X( void ) const
               {
                   return m_end.first - m_begin.first;
               }
 
               double Y( void ) const
               {
                   return m_end.second - m_begin.second;
               }
 
               std::string ToString ( void ) const
               {
                   std::ostringstream sResult;
 
                   sResult << "((" << m_begin.first << ", " << m_begin.second << "), (" << m_end.first << ", " << m_end.second << "))";
 
                   return sResult.str();
               }
 
    private:
        std::pair<double, double> m_begin;
        std::pair<double, double> m_end;
    };
 
    template <class _Stream>
    _Stream& operator >> (_Stream& _strm, Vector& _vector)
    {
        double dX = 0, 
               dY = 0;
 
        _strm >> dX >> dY;
        _vector.SetBegin(dX, dY);
 
        _strm >> dX >> dY;
        _vector.SetEnd(dX, dY);
 
        return _strm;
    }
 
    template <class _Stream>
    _Stream& operator << (_Stream& _strm, const Vector& _vector)
    {
        _strm << _vector.ToString();
        return _strm;
    }
 
    double operator * (const Vector& _right, const Vector& _left)
    {
        double dResult = _right.X()*_left.X() + _right.Y() * _left.Y();
 
        return dResult;
    }
}
Yandex
Объявления
10.12.2010, 00:30     class vector (sub operation)
Ответ Создать тему
Опции темы

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