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

Геометрический вектор - C++

Восстановить пароль Регистрация
 
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.05.2011, 17:46     Геометрический вектор #1
Как можно реализовать методы для того, что бы подсчитать длину вектора, суму векторов, разницу и скалярное воспроизведение.

Вот часть программами, которую удалось мне написать:
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
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
 
using namespace std;
class vector{
      public:
              double x1, y1, z1,x2,y2,z2;
      public :
             void Entervect(){
                              cout<<"Введите координаты первого вектора : "<<endl;
                                 cout<<"Enter x1 : ";
                                 cin>>x1;                              
                                 cout<<"Enter y1 : ";
                                 cin>>y1;
                                 cout<<"Enter z1 : ";
                                 cin>>z1;
                              cout<<"Введите координаты второго вектора : "<<endl;
                                 cout<<"Enter x2 : ";
                                 cin>>x2;                              
                                 cout<<"Enter y2 : ";
                                 cin>>y2;
                                 cout<<"Enter z2 : ";
                                 cin>>z2;
                              
                              };
             
                              
             void Printvect(){
                              cout<<" Первый вектор "<<"( "<<x1<<" : "<<y1<<" : "<<z1<<" )"<<endl;
                              cout<<" Второй вектор "<<"( "<<x2<<" : "<<y2<<" : "<<z2<<" )"<<endl;
                             };
                             
             /*double coutdov(){
                      double static d;
                      d = sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2)+(z1-z2)(z1-z2));
                      return d;
                             };*/
             //double count-(){
                     
                             //}
            // double count+(){
                      
                             //}
             
};
 
int main(){
    do{
    setlocale(LC_ALL,"Rus");
    vector v;
    v.Entervect();
    v.Printvect();
    
    //v.coutdov(double x1,x2,y1,y2,z1,z2);
    //v.Printvect();
    //v.countdov();
    //cout<<"Длинна вектора : "<<d;
    //v.count-();
    //v.count+();
    
} while (getch()!=27);
    system("pause"); 
    return 0;    
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 17:46     Геометрический вектор
Посмотрите здесь:

C++ Создать иерархию классов вектор(longint) и безопасный вектор с проверкой выхода за пределы
Создать иерархию классов вектор и безопасный вектор с проверкой выхода за пределы C++
контейнер -вектор вложеный в вектор C++
C++ Есть квадратная матрица А порядка n и вектор b с n элементами. Получить вектор Аb.
C++ задан вектор С, который состоит из 12 действительных чисел. Сформировать вектор D, нечетные элементы которого есть целая часть нечетных
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
28.05.2011, 17:55     Геометрический вектор #2
Цитата Сообщение от Batarchuk Посмотреть сообщение
подсчитать длину вектора
квадратный корень из суммы квадратов координат, это же просто?

Цитата Сообщение от Batarchuk Посмотреть сообщение
суму векторов, разницу и скалярное воспроизведение
определить операторы + - и *

Добавлено через 3 минуты
Цитата Сообщение от Batarchuk Посмотреть сообщение
double x1, y1, z1,x2,y2,z2;
хаха у тебя чё два вектора в одном объекте хранятся? выкинь сразу на помойку его. Фиксированное количество координат тоже не обрадует твоего препода.
Цитата Сообщение от Batarchuk Посмотреть сообщение
void Entervect()
а вместо этого метода лучше перегрузить оператор ввода в поток
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.05.2011, 18:00  [ТС]     Геометрический вектор #3
Вот по поводу перегрузок хотелось бы узнать больше, как это можно сделать?

Добавлено через 2 минуты
Как раз трёх-координатный и надо..)
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
28.05.2011, 18:02     Геометрический вектор #4
C++
1
2
3
4
5
friend istream& operator>>(istream& strm, vector& target)
{
    //здесь нужно разместить примерно тоже самое что и в entervect, только cin заменить на strm желательно
    return strm;
}
точнее перегрузки тут никакой нет. Просто определил оператор*

Добавлено через 1 минуту
класс надо называть по сути. У тебя не vector, а two_vectors_with_three_coordinates сейчас
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.05.2011, 18:11  [ТС]     Геометрический вектор #5
Нужно ли два класса для двух векторов? Или один, где описать вектор?
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
28.05.2011, 18:20     Геометрический вектор #6
нужен один класс, который содержит свои координаты, определить
vector operator+(const vector& another)
vector operator-(const vector& another)
double operator*(const vector& another) скалярное произведение
вот что подразумевается в задании. Конструктор копирования и деструктор не нужны в твоём случае

соответсвенно в теле программы ты создашь два объекта типа вектор и будешь их складывать умножать и тд и тп...

Добавлено через 3 минуты
конечно лучше координаты хранить в приватном vector<double>, а в операциях сложения делать проверку, чтобы векторы имели одинаковую размерность. ЧНельзя же сложить векторы разной размерности?
Yandex
Объявления
28.05.2011, 18:20     Геометрический вектор
Ответ Создать тему
Опции темы

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