main.cpp
Código:
#include <iostream>
#include "Vector.h"
using namespace std;
int main()
{
Vector vec;
vec.mostrar();
cin>>vec;
vec.mostrar();
Vector vec1;
cin>>vec1;
vec1.mostrar();
cout<<endl;
cout<<"Suma de los vectores"<<endl;
cout<<endl;
cout<<(vec+vec1);
cout<<"Resta de los vectores"<<endl;
cout<<endl;
cout<<(vec-vec1);
cout<<"Multiplicacion de los vectores"<<endl;
cout<<endl;
cout<<(vec*vec1);
cout<<"Division de los vectores"<<endl;
cout<<endl;
cout<<(vec/vec1);
return 0;
cout<<"\n"<<endl;
}
vector.cpp
Código:
#include "Vector.h"
#include <iostream>
#include <cstdlib>
using namespace std;
void igualarvector(int*,int*,int);
int* generarvector(int);
//vector::vector()
//{
// tam=0;
// *vec=NULL;
//}
Vector::Vector(int ta)
{
this->tam=ta;
vec=generarvector(tam);
if(!vec && tam)
cerr<<"sin memoria";
}
Vector::Vector(const Vector& obj)
{
tam=obj.tam;
vec=generarvector(tam);
if(!vec && tam)
cerr<<"sin memoria";
else
igualarvector(vec,obj.vec,tam);
}
Vector::~Vector()
{
delete []vec;
}
int* generarvector(int tam)
{
if(tam)
{
try
{
int* aux;
aux=new int[tam];
return aux;
}
catch(bad_alloc &ex)
{
cerr<<ex.what();
}
}
return NULL;
}
///////////////////////////////////////////
void igualarvector(int* destino,int* origen,int tam)
{
int i;
for(i=0; i<tam; i++)
{
destino[i]=origen[i];
}
}
/////////////////////////////////////////////////////////////
void Vector::mostrar()
{
int i;
if(vec)
{
for(i=0; i<tam; i++)
{
cout<<"vec["<<i<<"]: "<<vec[i]<<endl;
}
}
else
{
cout<<"el vector no tiene elementos"<<endl;
cout<<endl;
}
}
//////////////////////////////////////////////////////////////////
istream& operator>> (istream& entrada,Vector& obj)
{
int i;
cout<<endl;
cout<<"Ingrese el tamanio"<<endl;
entrada>>obj.tam;
delete [] obj.vec;
obj.vec=generarvector(obj.tam);
if(obj.tam)
{
cout<<endl;
cout<<"Ingrese elemento: "<<endl;
for(i=0; i<obj.tam; i++)
{
entrada>>obj.vec[i];
}
}
else
cerr<<"vector vacio error..."<<endl;
cout<<endl;
return entrada;
}
//////////////////////////////////////////////////////////////////////////////
Vector Vector :: operator+ (const Vector& obj)const
{
int i;
if(obj.tam==tam)
{
Vector resultado(tam);
for(i=0; i<tam; i++)
{
resultado.vec[i]=obj.vec[i]+ vec[i];
}
return resultado;
cout<<endl;
}
else
cerr<<"error de tamanio"<<endl;
cout<<endl;
return Vector(0);
}
Vector Vector :: operator- (const Vector& obj)const
{
int i;
if(obj.tam==tam)
{
Vector resultado(tam);
for(i=0; i<tam; i++)
{
resultado.vec[i]=obj.vec[i]- vec[i];
}
return resultado;
cout<<endl;
}
else
cerr<<"error de tamanio"<<endl;
cout<<endl;
return Vector(0);
}
Vector Vector :: operator* (const Vector& obj)const
{
int i;
if(obj.tam==tam)
{
Vector resultado(tam);
for(i=0; i<tam; i++)
{
resultado.vec[i]=obj.vec[i] * vec[i];
}
return resultado;
cout<<endl;
}
else
cerr<<"error de tamanio"<<endl;
cout<<endl;
return Vector(0);
}
Vector Vector :: operator/ (const Vector& obj)const
{
int i;
if(obj.tam==tam)
{
Vector resultado(tam);
for(i=0; i<tam; i++)
{
resultado.vec[i]=obj.vec[i]- vec[i];
if (vec[i]==0)
std::exit(EXIT_FAILURE);
}
return resultado;
cout<<endl;
}
else
cerr<<"error de tamanio"<<endl;
cout<<endl;
return Vector(0);
}
ostream& operator<<(ostream&salida,const Vector&obj)
{
if(obj.vec)
{
for(int i=0; i<obj.tam; i++)
{
salida<<obj.vec[i]<<endl;
}
}
else
cout<<"no existe vector"<<endl;
cout<<endl;
return salida;
}
vector.c
Código:
#ifndef VECTOR_H
#define VECTOR_H
#include <iostream>
using namespace std;
class Vector
{
public:
//Vector();
Vector(int=0);
Vector(const Vector&);
~Vector();
void mostrar();
friend istream& operator>>(istream&,Vector&);
Vector operator+(const Vector&)const;
Vector operator-(const Vector&)const;
Vector operator*(const Vector&)const;
Vector operator/(const Vector&)const;
friend ostream& operator<<(ostream&,const Vector&);
private:
int tam;
int* vec;
};
#endif // VECTOR_H