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

Класс векторов на Dev-C++ - C++

Восстановить пароль Регистрация
 
BeLiX
 Аватар для BeLiX
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 35
23.11.2012, 12:13     Класс векторов на Dev-C++ #1
Здравствуйте! Я учусь в университете, мы изучаем среду программирования Dev-C++
Ну и препод дал задание написать класс для векторов в отдельном файле
Они у меня написаны но вот я не могу передать значение в класс через ссылку
Вот код:
Vector.h
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
#include <math.h>
class Vector
{
      public:
             double Lenght_Vector (int x, int y, int z)
             {
                 double L;
                 L=sqrt(pow(x,2)+pow(y,2)+pow(z,2));
                 return L;
             };
             int Sum_Vector (int x1, int y1, int z1, int x2, int y2, int z2, int **x3, int **y3, int **z3)
             {
                 x3=x1+x2;
                 y3=y1+y2;
                 z3=z1+z2;
                 return 0;
             };
             int Scalar_Vector (int x1, int y1, int z1, int x2, int y2, int z2)
             {
                 int S;
                 S=x1*x2+y1*y2+z1*z2;
                 return S;
             };
             int Smesh_Vector (int x1, int y1, int z1, int x2, int y2, int z2, int x3, int y3, int z3)
             {
                 int det;
                 det=(x1*y2*z3)+(y1*z2*x3)+(z1*x2*y3)-(z1*y2*x3)-(x1*z2*y3)-(y1*x2*z3);
                 return det;            
             };
             void Vector_Product (int &x1, int &y1, int &z1, int x2, int y2, int z2, int x3, int y3, int z3)
             {
                  x1=y2*z3-z2*y3;
                  y1=x2*z3-z2*x3;
                  z1=x2*y3-y2*x3;
             };
};
А вот файл .CPP
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
#include <fstream>
#include <iostream>
#include <conio.h>
#include "Vector.h"
using namespace std;
int main()
{
    Vector V;
    int xA,yA,zA;
    int xB,yB,zB;
    int xC,yC,zC;
    double LA,LB,LC;
    int SCAB,SCAC,SCBC;
    int SxAB,SyAB,SzAB;
    int SxAC,SyAC,SzAC;
    int SxBC,SyBC,SzBC;
    int VxAB,VyAB,VzAB;
    int VxAC,VyAC,VzAC;
    int VxBC,VyBC,VzBC;
    int D;
    ifstream fin ("input.txt");
    ofstream fout("output.txt");
    fin>>xA>>yA>>zA;
    fin>>xB>>yB>>zB;
    fin>>xC>>yC>>zC;
    //dlina vectorov
    LA=V.Lenght_Vector(xA,yA,zA);
    LB=V.Lenght_Vector(xB,yB,zB);
    LC=V.Lenght_Vector(xC,yC,zC);
    //Summa vectorov
    SxAB=0;
    SyAB=0;
    SzAB=0;
    V.Sum_Vector(xA,yA,zA,xB,yB,zB,&SxAB,&SyAB,&SzAB);    
/*   V.Sum_Vector(xA,yA,zA,xC,yC,zC,SxAC,SyAC,SzAC);
    V.Sum_Vector(xB,yB,zB,xC,yC,zC,SxBC,SyBC,SzBC); */
    //Scalarnoe proizvedenie vectorov
    SCAB=V.Scalar_Vector(xA,yA,zA,xB,yB,zB);
    SCAC=V.Scalar_Vector(xA,yA,zA,xC,yC,zC);
    SCBC=V.Scalar_Vector(xB,yB,zB,xC,yC,zC);
 /*   //Vectornoe proizvedenie
    V.Vector_Product(*VxAB,*VyAB,*VzAB,xA,yA,zA,xB,yB,zB);
    V.Vector_Product(*VxAC,*VyAC,*VzAC,xA,yA,zA,xC,yC,zC);
    V.Vector_Product(*VxBC,*VyBC,*VzBC,xB,yB,zB,xC,yC,zC);*/
    //Smashaniy dobutoc
    D=V.Smesh_Vector(xA,yA,zA,xB,yB,zB,xC,yC,zC);
    
    //Vivod v file
    fout<<"LA="<<LA<<"\n";
    fout<<"LB="<<LB<<"\n";
    fout<<"LC="<<LC<<"\n";
    fout<<"SxAB="<<SxAB<<"\n";
    fout<<"SyAB="<<SyAB<<"\n";
    fout<<"SzAB="<<SzAB<<"\n";
    fin.close();
    fout.close();
}
Менял что мог... я уже в ступоре. Прошу вашей помощи. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 12:13     Класс векторов на Dev-C++
Посмотрите здесь:

сложение и вычитание векторов, скалярное произведение векторов, умножение на скаляр, сравнение векторов, вычисление длины вектора C++
C++ Программирование на Dev-C++ 4.9.9.2 - Класс дробь
Определить класс трехмерных векторов C++
C++ Создать производный класс, в котором реализована функция умножения вектора на число и функция сложения двух векторов
C++ Подскажите как составить класс объектов-векторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
23.11.2012, 12:16     Класс векторов на Dev-C++ #2
BeLiX, у вас идея самого класса неверна.
В классе должны быть не только методы, но и данные.
BeLiX
 Аватар для BeLiX
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 35
23.11.2012, 12:26  [ТС]     Класс векторов на Dev-C++ #3
Цитата Сообщение от I.M. Посмотреть сообщение
BeLiX, у вас идея самого класса неверна.
В классе должны быть не только методы, но и данные.
Тоесть нам надо добавить переменные например изначально заданые 0?
Возможно я что то неправильно понял... Так как мы только начали изучать классы
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
23.11.2012, 12:28     Класс векторов на Dev-C++ #4
BeLiX, вроде того. Значения по умолчанию пусть будут 0. Само собой, должна быть возможность выставлять нужные значения
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.11.2012, 13:05     Класс векторов на Dev-C++ #5
Цитата Сообщение от BeLiX Посмотреть сообщение
я не могу передать значение в класс через ссылку
Чтобы передавать через ссылку, метод должен принимать ссылку:
C++
1
2
3
4
int Sum_Vector (int &x1, int &y1, int &z1, int &x2, int &y2, int &z2, int &x3, int &y3, int &z3)
{}
...
V.Sum_Vector(xA, yA, zA, xB, yB, zB, SxAB, SyAB, SzAB);
Или (если по ссылке нужно передать только SxAB, SyAB, SzAB), то так:
C++
1
2
int Sum_Vector (int x1, int y1, int z1, int x2, int y2, int z2, int &x3, int &y3, int &z3)
{}
BeLiX
 Аватар для BeLiX
1 / 1 / 0
Регистрация: 28.01.2010
Сообщений: 35
23.11.2012, 17:22  [ТС]     Класс векторов на Dev-C++ #6
Большое спасибо... заработало...
Yandex
Объявления
23.11.2012, 17:22     Класс векторов на Dev-C++
Ответ Создать тему
Опции темы

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