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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Ноффичок
1 / 1 / 1
Регистрация: 14.07.2009
Сообщений: 74
#1

Вектор класс - C++

01.04.2010, 16:46. Просмотров 1003. Ответов 2
Метки нет (Все метки)

Всем привет!!! Вот написал программу с класами а она не правильно работеает. Пожалуйста помогоите исправить ошыбки.
Сама задача:Создать класс vector3D, который задается тройкой координат. Обязательно должны быть реализованы: добавление и вычитание векторов, скалярного умножения векторов, умножение на скаляр, сравнение векторов, вычисление длины вектора, сравнение длин векторов.
В задачи должны присутствовать методы
метод инициализации Init;
ввод с клавиатуры Read;
вывод на экран Display;


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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include <vcl.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused
class vect {
private:
   int Vek1[2],vek2[2],vek3[2],vek4[2],vek5[2],vek6[2];
   void display ();
   void read ();
   void init ();
 
   void suma();
   void rizn();
   void skal1(); //Скалярне множ
   void skal2(); //множення на скаляр
   void distance1(); //довжина вектора
   void porivn(); //порівн довжини векторів
   int k,sk,dow1,dow2,flag;
};
 
vect::init()
{
 vek1[0]=0;
 vek1[1]=0;
 vek1[2]=0;
 vek2[0]=0;
 vek2[1]=0;
 vek2[2]=0;
 vek3[0]=0;
 vek3[1]=0;
 vek3[2]=0;
 vek4[0]=0;
 vek4[1]=0;
 vek4[2]=0;
vek5[0]=0;
 vek5[1]=0;
 vek5[2]=0;
vek6[0]=0;
 vek6[1]=0;
 vek6[2]=0;
 k=0;
sk=0;
dow1=0;
dow2=0;
flag=0;
}
 
 
vect::read()
{
cout<<"Enter Vector1:"<<endl;
cin>>vek1[0]>>vek1[1]>>vek1[2]>>endl;
cout<<"Enter Vector2:"<<endl;
cin>>vek2[0]>>vek2[1]>>vek2[2]>>endl;
cout<<"Enter k:"<<endl;
cin>>k>>endl;
}
 
 
vect::display()
{cout<<"Suma(x,y,z):"<<vek3[0]<<","<<vek3[1]<<","<<vek3[2]<<endl;
cout<<"rizn(x,y,z):"<<vek4[0]<<","<<vek4[1]<<","<<vek4[2]<<endl;
cout<<"Skal1(x,y,z)(vek1):"<<vek5[0]<<","<<vek5[1]<<","<<vek5[2]<<endl;
cout<<"     (x,y,z)(vek2):"<<vek6[0]<<","<<vek6[1]<<","<<vek6[2]<<endl;
cout<<"Skal_dob:"<<sk<<endl;
cout<<"dow1:"<<dow1<<endl;
cout<<"dow2:"<<dow2<<endl;
if (flag==1) cout<<"Vek1>Vek2"<<endl;
cout<<"Vek1<Vek2"<<endl;
}
 
vect::suma()
{
Vek3[0]=Vek1[0]+Vek2[0];
Vek3[1]=Vek1[1]+Vek2[1];
Vek3[2]=Vek1[2]+Vek2[2];
}
 
vect::rizn()
{
Vek4[0]=Vek1[0]-Vek2[0];
Vek4[1]=Vek1[1]-Vek2[1];
Vek4[2]=Vek1[2]-Vek2[2];
}
 
vect::skal1()
{
Vek5[0]=Vek1[0]*k;
Vek5[1]=Vek1[1]*k;
Vek5[2]=Vek1[2]*k;
Vek6[0]=Vek2[0]*k;
Vek6[1]=Vek2[1]*k;
Vek6[2]=Vek2[2]*k;
}
 
vect::skal2()
{sk=Vek1[0]*Vek2[0]+Vek1[1]*Vek2[1]+Vek1[2]*Vek2[2];
} 
 
vect::distance1()
{
dow1=sqrt(sqr(Vek1[0])+sqr(Vek1[1])+sqr(Vek1[2]));
dow2=sqrt(sqr(Vek2[0])+sqr(Vek2[1])+sqr(Vek2[2]));
}
 
vect::porivn()
{if (dow1>dow2) flag=1;
else flag=2;
}
 
int main()
{ vect a;
a.init();
a.read();
a.display();
 
   getch();
   return 0;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2010, 16:46     Вектор класс
Посмотрите здесь:

Класс вектор - C++
Создать абстрактный тип данных - класс вектор, который имеет указатель на float, число элементов и переменную состояния. Определить...

Класс вектор - C++
Помогите сделать

Класс Вектор - C++
Нужна помощь в написании программы. Класс &quot;Вектор&quot;. (Чем он отличается от массива? в том что мне дали про вектора ни слова. Помогите...

класс Вектор - C++
всем привет. Начинаю делать домашку :-) в классе вектор создаю метод: cVector.h class cVector { public: ...

Класс вектор - C++
Здраствуйте! Помогите организовать класс вектор, в котором есть методы позволяющие инициализировать вектор, находить минимум и максимум,...

Класс-вектор в С++ - C++
Здраствуйте. Передо мной стоит задача реализовать произведение и сложение векторов. Информации, той, что я нашел, оказалось мало. Программу...

Класс вектор С++ - C++
Вектор. Члены класса: 3 прямоугольные декартовые координаты. Методы: Конструктор, деструктор, метод вывода вектора, метод вычисления...

Класс Вектор - C++
Здраствуйте! Может ли кто-нибудь помочь с объяснением проблемы , потому что я не знаю точно , что это берет. Это условие ....

Класс вектор - C++
У меня есть задача: Разработать пользовательский тип “ вектор в n-мерном пространстве”. Для разрабатываемого типа обязательно определить:...

Класс Вектор - C++
Решил написать свой класс вектор, приблизительно как в СТЛ. Сначала решил сделать каркас. Все функции без аллокатора и итератора. Сделал. И...

Класс вектор - C++
необходимо написать класс вектор (в геометрическом смысле в трёхмерном пространстве) реализовать : поворот вектора вокруг осей...

Класс вектор - C++
Не могу разобраться с этим классом, прошу помощи и в объяснении(задание очень объёмное ещё), проблема с самим вектором тоже есть. ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
EvilSlipp3r
32 / 32 / 3
Регистрация: 25.03.2010
Сообщений: 45
01.04.2010, 18:39     Вектор класс #2
Ну на первый взгляд :
1) мб стоит соблюдать регистр в названиях переменных, а то как-то не красиво получается
2) мб стоит добавить void перед функциями
3) она и не должна правильно работать, потому что я не увидел, чтобы вызывались функции для сложения\разности\умножения....
Ноффичок
1 / 1 / 1
Регистрация: 14.07.2009
Сообщений: 74
01.04.2010, 21:24  [ТС]     Вектор класс #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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include <vcl.h>
#include <conio.h>
#include <math.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused
class vect {
private:
   int Vek1[2],vek2[2],vek3[2],vek4[2],vek5[2],vek6[2];
   void suma();
   void rizn();
   void skal1(); 
   void skal2();
   void distance1();
   void porivn();
   int k,sk,dow1,dow2,flag;
};
 
class qwerty:public vect {
   void display ();
   void read ();
   void init ();
}
 
 
qwerty::init()
{
 vek1[0]=0;
 vek1[1]=0;
 vek1[2]=0;
 vek2[0]=0;
 vek2[1]=0;
 vek2[2]=0;
 vek3[0]=0;
 vek3[1]=0;
 vek3[2]=0;
 vek4[0]=0;
 vek4[1]=0;
 vek4[2]=0;
vek5[0]=0;
 vek5[1]=0;
 vek5[2]=0;
vek6[0]=0;
 vek6[1]=0;
 vek6[2]=0;
 k=0;
sk=0;
dow1=0;
dow2=0;
flag=0;
}
 
 
qwerty::read()
{
cout<<"Enter Vector1:"<<endl;
cin>>vek1[0]>>vek1[1]>>vek1[2]>>endl;
cout<<"Enter Vector2:"<<endl;
cin>>vek2[0]>>vek2[1]>>vek2[2]>>endl;
cout<<"Enter k:"<<endl;
cin>>k>>endl;
}
 
 
qwerty::display()
{cout<<"Suma(x,y,z):"<<vek3[0]<<","<<vek3[1]<<","<<vek3[2]<<endl;
cout<<"rizn(x,y,z):"<<vek4[0]<<","<<vek4[1]<<","<<vek4[2]<<endl;
cout<<"Skal1(x,y,z)(vek1):"<<vek5[0]<<","<<vek5[1]<<","<<vek5[2]<<endl;
cout<<"     (x,y,z)(vek2):"<<vek6[0]<<","<<vek6[1]<<","<<vek6[2]<<endl;
cout<<"Skal_dob:"<<sk<<endl;
cout<<"dow1:"<<dow1<<endl;
cout<<"dow2:"<<dow2<<endl;
if (flag==1) cout<<"Vek1>Vek2"<<endl;
cout<<"Vek1<Vek2"<<endl;
}
 
vect::suma()
{
Vek3[0]=Vek1[0]+Vek2[0];
Vek3[1]=Vek1[1]+Vek2[1];
Vek3[2]=Vek1[2]+Vek2[2];
}
 
vect::rizn()
{
Vek4[0]=Vek1[0]-Vek2[0];
Vek4[1]=Vek1[1]-Vek2[1];
Vek4[2]=Vek1[2]-Vek2[2];
}
 
vect::skal1()
{
Vek5[0]=Vek1[0]*k;
Vek5[1]=Vek1[1]*k;
Vek5[2]=Vek1[2]*k;
Vek6[0]=Vek2[0]*k;
Vek6[1]=Vek2[1]*k;
Vek6[2]=Vek2[2]*k;
}
 
vect::skal2()
{sk=Vek1[0]*Vek2[0]+Vek1[1]*Vek2[1]+Vek1[2]*Vek2[2];
} 
 
vect::distance1()
{
dow1=sqrt(sqr(Vek1[0])+sqr(Vek1[1])+sqr(Vek1[2]));
dow2=sqrt(sqr(Vek2[0])+sqr(Vek2[1])+sqr(Vek2[2]));
}
 
vect::porivn()
{if (dow1>dow2) flag=1;
else flag=2;
}
 
int main()
{ qwerty a;
a.init();
a.read();
a.display();
 
   getch();
   return 0;
}
//---------------------------------------------------------------------------
Ответ Создать тему
Опции темы

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