С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Найти длины исходных и результирующего векторов - C++

27.02.2013, 17:53. Просмотров 864. Ответов 1
Метки нет (Все метки)

Здравствуйте) Задание в универе:
Класс:вектор
Члены класса: 3 прямоугольные декартовые координаты
Методы: Конструктор, метод вывода вектора, метод вычисления длины вектора
Операторы перегрузки: сложение(+), скалярное(%) и векторное(*) произведения векторов
Исходные данные: a=(aX;aY;aZ) b=(bX;bY;bZ) c=(cX;cY;cZ)
Результаты: r=(a+b)x c ; t=(a+c)c найти длины исходных и результирующего векторов

Моя одногруппница написала программу:#include <iostream>
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
#include <math.h>
using namespace std;
class Vektor {
private:
        double x, y, z;
        public:
            Vektor();
        Vektor(double, double, double);
        ~Vektor();
        void print();
        double lenght();
        Vektor operator + (Vektor);
        double operator % (Vektor);
        Vektor operator * (Vektor);
        double X(){
            cout << "vvedite x= "; cin >> x;
            return x;}
        double Y(){
            cout << "vvedite y= "; cin >> y;
            return y;}
        double Z(){
            cout << "vvedite z= "; cin >> z;
            return z;}
};
//деструктор
Vektor::~Vektor(){}
//конструктор по умолчанию
Vektor::Vektor(){
    x=y=z=0;
}
//конструктор с параметрами
Vektor::Vektor(double a, double b, double c){
    x=a; y=b; z=c;
}
//функция вывода вектора
void Vektor::print(){
    cout << "{ " << x << ", " << y << ", " << z << " }" << "\n"; 
}
//найти длину вектора
double Vektor::lenght(){
    return sqrt(x*x+y*y+z*z);
}
//сложение двух векторов
Vektor Vektor::operator + (Vektor d){
    return *(new Vektor(x + d.x, y + d.y, z + d.z));
}
//скалярное произведение
double Vektor::operator % (Vektor d){
    return (x*d.x+y*d.y+z*d.z);
}
//векторное произведение
Vektor Vektor::operator * (Vektor d){
    return *(new Vektor(y*d.z-z*d.y, z*d.x-x*d.z, x*d.y-y*d.x));
}
 
int main() {
    Vektor  brr, //вектор по умолчанию
            yyr(1, 2, 3), 
            arr(2, 3, 4),
            grr(3, 4, 5),
            r = (yyr + arr)*grr;
    double  t = (yyr+grr)%grr;
    cout << " r= "; r.print();
    cout << " \n vector po ymol="; brr.print();
    cout << "\n t= " << t << "\n mod yyr= " << yyr.lenght() << "\n mod arr= " << arr.lenght() << "\n mod grr= " << grr.lenght() << "\n mod r= " << r.lenght() << "\n";
    Vektor  a;
            a.X(), a.Y(), a.Z();
    a.print();
    yyr.X();
    yyr.print();
    cin.get(); cin.get();
        return 0;
}
нужно ее как то изменить, чтобы препод подумал, что я сама писала))) но я не такая продвинутая как она

спасибо за любую помощь
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 17:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти длины исходных и результирующего векторов (C++):

Найти длины исходных и результирующего векторов через класс - C++
Задание: Дан класс - вектор; Члены класса - 3 прямоугольные декартовые координаты; Методы - конструктор, деструктор, метод вывода...

Даны два вектора X(20) и Y(20), найти длины векторов X, Y, X+Y, X-Y - C++
Помогите найти ошибку, пишет &quot;vector subscript out of range&quot;. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include...

Сравнение длины двух векторов - C++
Как мне правильно сравнить величины векторов??? Длину я вычислил, сравнить не могу)) class Vector { float x, y, z; public: ...

Создать класс для обработки векторов разность векторов норму векторов - C++
Создать класс для обработки векторов разность векторов норму векторов

Выбрать 4 числа с минимальной разницей между максимальным и минимальным числом из 4 векторов разной длины - C++
Здравствуйте, у меня такая задача: Даны 4 вектора размера от 1 до 100 000 В каждый записываются числа от 1 до 100 000 Надо найти...

Создать класс векторов, реализующий сложения и вычитания векторов - C++
Помогите найти ошибку, так как неправильно выводятся массивы, то скорее всего не получается сформировать массив. А задание:создать класс...

1
anmartex
...
1708 / 1201 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
27.02.2013, 19:50 #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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
class TVector
{
   private:
      double x, y, z;
 
   public:
      TVector(): x(0), y(0), z(0) { ; }
      TVector(double theX, double theY, double theZ)
         : x(theX), y(theY), z(theZ) { ; }
      ~TVector() { ; };
 
      double Lenght() const
      {
         return sqrt(x*x + y*y + z*z);
      }
 
      TVector operator + (const TVector& obj) const
      {
         return TVector(x+obj.x, y+obj.y, z+obj.z);
      }
 
      double operator % (const TVector& obj) const
      {
         return (x*obj.x + y*obj.y + z*obj.z);
      }
 
      TVector operator * (const TVector& obj) const
      {
         return TVector(y*obj.z - z*obj.y, z*obj.x - x*obj.z, x*obj.y - y*obj.x);
      }
 
      TVector& SetX(double x)
      {
         this->x = x;
 
         return *this;
      }
 
      TVector& SetY(double y)
      {
         this->y = y;
 
         return *this;
      }
 
      TVector& SetZ(double z)
      {
         this->z = z;
 
         return *this;
      }
 
      double GetX() const
      {
         return x;
      }
 
      double GetY() const
      {
         return y;
      }
 
      double GetZ() const
      {
         return z;
      }
};
 
ostream& operator << (ostream& os, const TVector& obj)
{
   os << "{ " << obj.GetX() << ", " << obj.GetY() << ", " << obj.GetZ() << " }";
 
   return os;
}
 
istream& operator >> (istream& is, TVector& obj)
{
   double x, y, z;
 
   is >> x >> y >> z;
 
   obj.SetX(x).SetY(y).SetZ(z);
 
   return is;
}
 
int main()
{
   TVector def;
   cout << "default vector = " << def << endl;
 
   TVector vec1(1, 2, 3);
   TVector vec2(2, 3, 4);
   TVector vec3(3, 4, 5);
 
   TVector r = (vec1 + vec2) * vec3;
 
   double t = (vec1 + vec3) % vec3;
   cout << "r = " << r << endl;
 
   cout << "t = " << t << endl
        << "mod vec1 = " << vec1.Lenght() << endl
        << "mod vec2 = " << vec2.Lenght() << endl
        << "mod vec3 = " << vec3.Lenght() << endl
        << "mod r = " << r.Lenght() << endl;;
 
   cout << "input vector a (X, Y, Z): ";
   TVector a;
   cin >> a;
   cout << a << endl;
 
   double x;
   cout << "input X for vector vec1: ";
   cin >> x;
   vec1.SetX(x);
 
   cout << vec1 << endl;
 
   system("pause");
 
   return 0;
}
Исходник + бинарник: program.7z
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2013, 19:50
Привет! Вот еще темы с ответами:

Вынести формирование результирующего массива в отдельную функцию - C++
Функция формирующая новый массив, упорядоченный по неубыванию , из двух массивов-параметров, уже упорядоченных по неубыванию. Нужно...

Найти сумму элементов 2-х векторов - C++
найти сумму векторов x и y , элементы ввести с клавиатуры

Найти скалярное произведение векторов - C++
Даны два вектора x, y есть Rn. Найти скалярное произведение векторов.

Найти скалярное произведение векторов - C++
Помогите пожалуйста, у самой никак не получается, надо написать программу на С++. Даны координаты двух n-мерных векторов A(a1; a2;..; an)...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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