Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2013, 11:50   #1
Артем_начинашка
 
Регистрация: 06.06.2013
Сообщений: 7
Радость C++ Векторная Арифметика

Добрый день, Ребят помогите с программой, задали сделать программу на тему"Векторная Арифметика" с классом!
в интернете почти ничего нету, если кто может подскажите! Заранее спасибо)
Артем_начинашка вне форума Ответить с цитированием
Старый 06.06.2013, 12:18   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
в интернете почти ничего нету,
в интернете много всего, я проверял. А что ты ищешь?
Цитата:
если кто может подскажите!
что подсказать?
rrrFer вне форума Ответить с цитированием
Старый 06.06.2013, 12:21   #3
Артем_начинашка
 
Регистрация: 06.06.2013
Сообщений: 7
Радость Ответ

Цитата:
Сообщение от rrrFer Посмотреть сообщение
в интернете много всего, я проверял. А что ты ищешь?

что подсказать?
нашел похожую программу, но не пойму как её реализовать (нашел на этом же форуме)
Код:
#include<math.h>
#include<iostream>
#include<stdio.h>
int main()
{
return 0;
}

class vector
{
 double x,y,z;
 public:
 vector(double vX=0, float vY=0, float vZ=0) { x=vX; y=vY; z=vZ; } // конструктор
  ~vector (); {}
 friend vector operator+(vector a, vector b); //сложение векторов
 friend vector operator-(vector a, vector b); //вычитание векторов
 friend vector operator*(vector a, double scalar); //умножение вектора на скаляр
 friend double operator*(vector a, vector b); //скалярное произведение векторов
 friend vector operator%(vector a, vector b); //векторное произведение векторов
 friend double abs(vector a); //модуль вектора
};
 
vector operator+(vector a, vector b)
{
 vector temp;
 temp.x = a.x + b.x;
 temp.y = a.y + b.y;
 temp.z = a.z + b.z;
 return temp;
}
 
vector operator-(vector a, vector b)
{
 vector temp;
 temp.x = a.x - b.x;
 temp.y = a.y - b.y;
 temp.z = a.z - b.z;
 return temp;
}
 
vector operator*(vector a, double scalar)
{
 vector temp;
 temp.x = a.x * scalar;
 temp.y = a.y * scalar;
 temp.z = a.z * scalar;
 return temp;
}
 
double operator*(vector a, vector b)
{
 return a.x*b.x + a.y*b.y + a.z*b.z;
}
 
vector operator%(vector a, vector b)
{
 vector Ox(1,0,0), Oy(0,1,0), Oz(0,0,1);
 return Ox*(a.y*b.z - a.z*b.y) + Oy*(a.z*b.x - a.x*b.z) + Oz*(a.x*b.y - a.y*b.x);
}
 
double abs(vector a)
{
 return sqrt(a.x*a.x + a.y*a.y + a.z*a.z);
}

Последний раз редактировалось Stilet; 06.06.2013 в 12:42.
Артем_начинашка вне форума Ответить с цитированием
Старый 06.06.2013, 12:26   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Оттолкнись отсюда: http://www.cyberforum.ru/cpp-builder/thread34072.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.06.2013, 12:28   #5
Артем_начинашка
 
Регистрация: 06.06.2013
Сообщений: 7
По умолчанию спасибо

Цитата:
Сообщение от Stilet Посмотреть сообщение
От души! СпасибО!!!
Артем_начинашка вне форума Ответить с цитированием
Старый 06.06.2013, 12:32   #6
Артем_начинашка
 
Регистрация: 06.06.2013
Сообщений: 7
По умолчанию ошибка

Цитата:
Сообщение от Stilet Посмотреть сообщение
Здесь есть ошибка Векторное произведение считает, как вычитание
Автору отписать не могу так как запись датируется 2009годом
Код:
//#include <vcl.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused
class vect {
public:
vect(int=0,int=0,int=0); // koHCTpykTop
vect operator+(const vect &) const; // c/|o}|{eHue
vect operator-(const vect &) const; // BbI4uTaHue
vect operator*(const vect &); // cka/|5IpHoe npou3BegeHue
vect operator*(const int &); // YMHo}|{eHue BekTopa Ha 4uc/|o
void print() const; // ne4aTb
private:
int x,y,z;
};
class vec {
public:
vec(int=0,int=0,int=0);
vec operator-(const vec &) const;
void print() const;
private:
int x,y,z;
};
vec::vec(int x1,int y1, int z1)
{
x = x1;
y = y1;
z = z1;
}
 
// KoHCTpykTop:
vect::vect(int x1,int y1,int z1)
{
x = x1;
y = y1;
z = z1;
}
 
// c/|o}|{eHue:
vect vect::operator+(const vect &operand2) const
{
vect sum;
sum.x = x + operand2.x;
sum.y = y + operand2.y;
sum.z = z + operand2.z;
return sum;
}
// BbI4uTaHue:
vect vect::operator-(const vect &operand2) const
{
vect diff;
diff.x = x - operand2.x;
diff.y = y - operand2.y;
diff.z = z - operand2.z;
return diff;
}
// cka/|5IPHoe npou3BegeHue:
vect vect::operator*(const vect &operand2)
{
vect proizv;
proizv.x = x * operand2.x;
proizv.y = y * operand2.y;
proizv.z = z * operand2.z;
return proizv;
}
// YMHo}|{eHue BekTopa Ha 4uc/|o:
vect vect::operator*(const int &operand2)
{
vect proizv;
proizv.x = x * operand2;
proizv.y = y * operand2;
proizv.z = z * operand2;
return proizv;
}
// BekTopHoe npou3BegeHue:
vec vec::operator-(const vec &operand2) const
{
vec proizv;
proizv.x = y * operand2.z - z * operand2.y;
proizv.y = z * operand2.x - x * operand2.x;
proizv.z = x * operand2.y - y * operand2.x;
return proizv;
}
 
// ne4aTb o6bekTa B Buge (x,y,z):
void vect:rint() const
{
cout<<'('<<x<<", "<<y<<", "<<z<<')';
}
 
 
 
void vec:rint() const
{
cout<<'('<<x<<", "<<y<<", "<<z<<')';
}
 
 
 
int main(int argc, char* argv[])
{
vect x(5,6,7),y(4,3,2);
vect z;
int chislo = 8;
cout<<"\n Vector 1: ";
x.print();
cout<<"\n Vector 2: ";
y.print();
z = x + y;
cout<<"\n Slozhenie: ";
z.print();
z = x - y;
cout<<"\n Vichitanie: ";
z.print();
z = x * y;
cout<<"\n Skalyarnoe proizvedenie: ";
z.print();
z = x * chislo;
cout<<"\n YmnozhenieV1 na chislo: ";
z.print();
z = y * chislo;
cout<<"\n YmnozhenieV2 na chislo: ";
z.print();
z = x - y;
cout<<"\n Vectornoe proizvedenie: ";
z.print();
getch();
return 0;
}

Последний раз редактировалось Stilet; 06.06.2013 в 12:41.
Артем_начинашка вне форума Ответить с цитированием
Старый 06.06.2013, 12:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Здесь есть ошибка
Так поправь )
Изучи код, познакомься с описанием методов, что в нем применяются и вперед.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Векторная алгебра ACE Valery Помощь студентам 55 13.02.2014 23:18
векторная алгебра KIRILOW Помощь студентам 61 31.10.2012 15:45
LNK1561 (векторная программа) finz Помощь студентам 6 20.05.2011 18:01
Векторная графика AnReykfi Помощь студентам 0 15.05.2010 14:10
векторная графика. квадрат varelik Мультимедиа в Delphi 18 07.09.2009 22:25