Initial commit
This commit is contained in:
+281
@@ -0,0 +1,281 @@
|
||||
Program to perform various operation on a vector using operator overloading
|
||||
|
||||
This Program deals with the basic operation like
|
||||
Addition(+),
|
||||
Subtraction(-), Dot Product, Cross Product etc. on Two 3-D vectors.
|
||||
|
||||
|
||||
#include "Vector.cpp"
|
||||
|
||||
void main()
|
||||
{
|
||||
system("cls");
|
||||
Vector A,B,C;
|
||||
int k,ch;
|
||||
char choice = 'y';
|
||||
do
|
||||
{
|
||||
if(choice == 'y' || choice == 'Y')
|
||||
{
|
||||
cout<<"
|
||||
INPUT VECTOR
|
||||
";
|
||||
cout<<"
|
||||
ENTER THE FIRST VECTOR.
|
||||
";
|
||||
A.GetData();
|
||||
cout<<"
|
||||
ENTER THE SECOND VECTOR.
|
||||
";
|
||||
B.GetData();
|
||||
}
|
||||
|
||||
system("cls");
|
||||
cout<<"
|
||||
PROGRAM FOR VECTOR OPERATIONS.
|
||||
";
|
||||
cout<<"
|
||||
|
||||
First Vector(A)= "<<A<<" Second Vector(B)= "<<B<<"
|
||||
|
||||
";
|
||||
cout<<" 1.Addition Of Two Vectors.
|
||||
";
|
||||
cout<<" 2.Subtraction Of Two Vectors.
|
||||
";
|
||||
cout<<" 3.Multiplication Of A Vector With The Scalar.
|
||||
";
|
||||
cout<<" 4.Cross Product Of Two Vectors.
|
||||
";
|
||||
cout<<" 5.Scalar(or Dot) Product Of Two Vectors.
|
||||
";
|
||||
cout<<" 6.Negative Of Vectors.
|
||||
";
|
||||
cout<<" 7.Exit
|
||||
";
|
||||
cout<<"
|
||||
Enter The Choice. ";
|
||||
cin>>ch;
|
||||
switch(ch)
|
||||
{
|
||||
case 1:
|
||||
cout<<"
|
||||
ADDITION OF TWO VECTORS.
|
||||
";
|
||||
C = A + B;
|
||||
cout<<"
|
||||
The Value Of A+B Is: "<<C;
|
||||
break;
|
||||
case 2:
|
||||
cout<<"
|
||||
SUBTRACTION OF TWO VECTORS.
|
||||
";
|
||||
C = A - B;
|
||||
cout<<"
|
||||
The Value Of A-B Is: "<<C;
|
||||
break;
|
||||
case 3:
|
||||
cout<<"
|
||||
MULTIPLICATION OF A VECTOR WITH A SCALAR.
|
||||
";
|
||||
cout<<"
|
||||
Enter The Value Of The Scalar: ";
|
||||
cin>>k;
|
||||
C = A * k;
|
||||
cout<<"
|
||||
The Value Of Ak Is (k Is the Scaler): "<<C;
|
||||
C = k * B;
|
||||
cout<<"
|
||||
The Value Of kB Is (k Is the Scaler): "<<C;
|
||||
break;
|
||||
case 4:
|
||||
cout<<"
|
||||
CROSS PRODUCT OF TWO VECTORS.
|
||||
";
|
||||
C = A * B;
|
||||
cout<<"
|
||||
The Value Of A*B(Cross Product) Is: "<<C;
|
||||
break;
|
||||
case 5:
|
||||
cout<<"
|
||||
SCALAR(OR DOT) PRODUCT OF TWO VECTORS.
|
||||
";
|
||||
A.DotProd(B);
|
||||
break;
|
||||
case 6:
|
||||
cout<<"
|
||||
NEGATIVE OF A VECTOR.
|
||||
";
|
||||
C = -A;
|
||||
cout<<"The Value Of -A Is: "<<C;
|
||||
C = -B;
|
||||
cout<<"
|
||||
The Value Of -B Is: "<<C;
|
||||
break;
|
||||
case 7:
|
||||
return;
|
||||
default:
|
||||
cout<<"
|
||||
WRONG CHOICE.
|
||||
";
|
||||
break;
|
||||
getch();
|
||||
}
|
||||
cout<<"
|
||||
|
||||
DO YOU WANT TO ENTER A NEW VECTOR (y/n): ";
|
||||
cin>>choice;
|
||||
system("cls");
|
||||
}while(1);
|
||||
}
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
//VECTOR.CPP
|
||||
|
||||
#include"Vector.h"
|
||||
|
||||
|
||||
Vector::Vector():x(0),y(0),z(0)
|
||||
{
|
||||
//cout<<"This Is A Default Constructor.";
|
||||
}
|
||||
|
||||
Vector Vector::operator +(const Vector &v)const //Addition
|
||||
{
|
||||
Vector res;
|
||||
res.x = x + v.x;
|
||||
res.y = y + v.y;
|
||||
res.z = z + v.z;
|
||||
return res;
|
||||
}
|
||||
|
||||
Vector Vector::operator -(const Vector &v)const //Subtraction
|
||||
{
|
||||
Vector res;
|
||||
res.x = x - v.x;
|
||||
res.y = y - v.y;
|
||||
res.z = z - v.z;
|
||||
return res;
|
||||
}
|
||||
|
||||
Vector Vector::operator *(const int k)const //Multiplication By Scalar
|
||||
{
|
||||
Vector res;
|
||||
res.x = k * x;
|
||||
res.y = k * y;
|
||||
res.z = k * z;
|
||||
return res;
|
||||
}
|
||||
|
||||
void Vector::GetData() //Input The Vector
|
||||
{
|
||||
cout<<"
|
||||
Enter The Value Of x : ";
|
||||
cin>>x;
|
||||
cout<<"
|
||||
Enter The Value Of y : ";
|
||||
cin>>y;
|
||||
cout<<"
|
||||
Enter The Value Of z : ";
|
||||
cin>>z;
|
||||
}
|
||||
|
||||
Vector operator *(int k,const Vector &v)
|
||||
{
|
||||
return v * k;
|
||||
}
|
||||
|
||||
Vector Vector::operator -()const //Negative Of A Vector
|
||||
{
|
||||
Vector res;
|
||||
res.x = -x;
|
||||
res.y = -y;
|
||||
res.z = -z;
|
||||
return res;
|
||||
}
|
||||
|
||||
Vector Vector::operator *(const Vector &v)const //Cross (or Vector)
|
||||
Product
|
||||
{
|
||||
Vector res;
|
||||
res.x = (y * v.z) - (z * v.y);
|
||||
res.y = (z * v.x) - (x * v.z);
|
||||
res.z = (x * v.y) - (y * v.x);
|
||||
return res;
|
||||
}
|
||||
|
||||
void Vector::DotProd(Vector v2) //Dot(Or Scalar) Product
|
||||
{
|
||||
int v1v2;
|
||||
v1v2 = (x * v2.x)+(y * v2.y)+(z * v2.z);
|
||||
cout<<"
|
||||
The Value Of A.B Is: "<<v1v2;
|
||||
}
|
||||
|
||||
ostream & Vector::Show(ostream & out)const
|
||||
{
|
||||
if((x<0) && (y<0) && (z<0))
|
||||
out<<x<<"I"<<y<<"J"<<z<<"K";
|
||||
|
||||
if((x<0) && (y<0) && (z>=0))
|
||||
out<<x<<"I"<<y<<"J+"<<z<<"K";
|
||||
|
||||
if((x<0) && (y>=0) && (z<0))
|
||||
out<<x<<"I+"<<y<<"J"<<z<<"K";
|
||||
|
||||
if((x<0) && (y>=0) && (z>=0))
|
||||
out<<x<<"I+"<<y<<"J+"<<z<<"K";
|
||||
|
||||
if((x>=0) && (y<0) && (z<0))
|
||||
out<<x<<"I"<<y<<"J"<<z<<"K";
|
||||
|
||||
if((x>=0) && (y<0) && (z>=0))
|
||||
out<<x<<"I"<<y<<"J+"<<z<<"K";
|
||||
|
||||
if((x>=0) && (y>=0) && (z<0))
|
||||
out<<x<<"I+"<<y<<"J"<<z<<"K";
|
||||
|
||||
if((x>=0) && (y>=0) && (z>=0))
|
||||
out<<x<<"I+"<<y<<"J+"<<z<<"K";
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////
|
||||
// VECTOR.H
|
||||
|
||||
#include<iostream>
|
||||
#include<conio.h>
|
||||
#include<stdlib.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Vector
|
||||
{
|
||||
private:
|
||||
int x,y,z;
|
||||
public:
|
||||
Vector(int,int,int);
|
||||
Vector();
|
||||
void GetData();
|
||||
Vector operator+(const Vector &v)const;
|
||||
Vector operator-(const Vector &v)const;
|
||||
|
||||
Vector operator*(const int k)const; //Multiplication by Scalar
|
||||
Vector operator*(const Vector &v)const; //Cross Product
|
||||
Vector operator-()const; //Negative Of A Scaler
|
||||
void DotProd(Vector); //Dot Product
|
||||
|
||||
ostream & Show(ostream & out)const;
|
||||
friend Vector operator*(const int k,const Vector &v);
|
||||
friend ostream & operator<<(ostream & out,const Vector &v)
|
||||
{
|
||||
v.Show(out);
|
||||
return out;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user