Java - Alguien puede convertir esto a Lenguaje java?

   
Vista:

Alguien puede convertir esto a Lenguaje java?

Publicado por Steven (1 intervención) el 18/06/2011 16:22:15
#include <iostream.h>
#include <stdlib.h>
//Definicion de grupo abeliano
class abeliano{
private :
int dato;
public :
abeliano(); // constructor vacio
abeliano(int); // constructor alternativo
abeliano(const abeliano&); // constructor de copia
//Producto
friend abeliano operator*(const abeliano&, const
abeliano&);
//Verifica propiedad asociativa
friend bool pAsociativa(const abeliano&, const
abeliano&, const abeliano&);
//Verifica propiedad conmutativa
friend bool pConmutativa(const abeliano&, const
abeliano&);
//Verifica existencia del elemento neutro o identidad
friend abeliano operator-(const abeliano& );
//Verifica existencia de inversos
friend abeliano operator~(const abeliano& );
//Suma
friend abeliano operator+(const abeliano&, const
abeliano&);
//Resta
friend abeliano operator-(const abeliano&, const
abeliano&);
//Division
friend abeliano operator/(const abeliano&, const
abeliano&);
//operadores de asignacion
abeliano& operator=(const abeliano&);
abeliano& operator*=(const abeliano&);
abeliano& operator+=(const abeliano&);
abeliano& operator-=(const abeliano&);
abeliano& operator/=(const abeliano&);
//entrada salida
void print();
friend ostream& operator<<(ostream&, const abeliano&);
friend istream& operator>>(istream&, abeliano&);
};
// constructores
abeliano :: abeliano()
{
dato = 0;
}
abeliano :: abeliano(int num)
{
dato = num;
}
abeliano :: abeliano(const abeliano& a)
{
dato = a.dato;
}
//Definicion de ley interna *
abeliano operator*(const abeliano& a, const abeliano& b)
{
abeliano dd = a.dato + b.dato + 3;
return dd;
}
//propiedades
bool pAsociativa(const abeliano& a, const abeliano& b,
const abeliano& c)
{
if (((a*b)*c).dato == (a*(b*c)).dato)
return true;
else
return false;
}
bool pConmutativa(const abeliano& a, const abeliano& b)
{
if ((a*b).dato == (b*a).dato)
return true;
else
return false;
}
//Existencia del neutro o identidad: lo devuelve
abeliano operator-(const abeliano& a)
{
abeliano e;
e.dato = -a.dato;
if ((a*e).dato == a.dato && a.dato == (a*e).dato)
return e;
}
//Existencia del inverso
abeliano operator~(const abeliano& a)
{
abeliano e = -a;
abeliano ainv = -6 - a;
if ((a*ainv).dato == e.dato)
return ainv;
}
// otros grupos abelianos
//Definicion de ley interna +
abeliano operator+(const abeliano& a, const abeliano& b)
{
abeliano dd = a.dato + b.dato + 1;
return dd;
}
//Definicion de ley interna -
abeliano operator-(const abeliano& a, const abeliano& b)
{
abeliano dd = a.dato - b.dato - 3;
return dd;
}
//Definicion de ley interna /
abeliano operator/(const abeliano& a, const abeliano& b)
{
if (b.dato != 0)
Figura 1a. Listado del programa classabel2.cpp
Edgar Ruiz L. >>>
58
SISTEMAS E INFORMÁTICA
{ abeliano dd = a.dato / b.dato + 2;
return dd;
}
else
exit(1); //error
}
//Sobrecarga para la asignacion de abelianos
abeliano& abeliano :: operator=(const abeliano& b)
{
dato = b.dato;
return *this;
}
abeliano& abeliano :: operator*=(const abeliano& b)
{
*this = *this * b;
return *this;
}
abeliano& abeliano :: operator+=(const abeliano& b)
{
*this = *this + b;
return *this;
}
abeliano& abeliano :: operator-=(const abeliano& b)
{
*this = *this - b;
return *this;
}
abeliano& abeliano :: operator/=(const abeliano& b)
{
*this = *this / b;
return *this;
}
void abeliano :: print()
{
cout<<dato<<endl;
}
//sobrecarga para el operador <<
ostream& operator<<(ostream& os, const abeliano& r)
{
os<<r.dato;
return os;
}
//sobrecarga para >>
istream& operator>>(istream& is, abeliano& r)
{
is>>r.dato;
return is;
}
int main() //classabel.cpp
{
abeliano a(3), b(2), c, d(1);
abeliano inv, neutro;
cout<<"Abelianos"<<endl;
cout<<"a = "; a.print();
cout<<"b = "; b.print();
c = a * b;
cout<<"c = a * b = "; c.print();
cout<<"d = "; d.print();
if (pAsociativa(a,b,c))
cout<<"\nSe cumple la Asociatividad en * con a, b, c
!..."<<endl;
else
cout<<"\nNo se cumple la Asociatividad"<<endl;
if (pConmutativa(a,b))
cout<<"\nSe cumple la Conmutatividad en * con a , b
!..."<<endl;
else
cout<<"\nNo se cumple la Conmutatividad"<<endl;
cout<<"Existencia del neutro de a = "; neutro = -a;
neutro.print();
cout<<"Existencia del inverso de a = "; inv = ~a;
inv.print();
cout<<"\nOtras grupos abelianos"<<endl;
c = a + b;
cout<<"c = a + b = "; c.print();
c = a - b;
cout<<"c = a - b = "; c.print();
c = a / b;
cout<<"c = a / b = "; c.print();
// Asignacion
d = c;
cout<<"\nAsignacion: d = c => "; d.print();
cout<<" a = "; a.print();
cout<<" b = "; b.print();
a *= b;
cout<<"\nAsignacion: a *= b=> "; a.print();
a += b;
cout<<"\nAsignacion: a += b => "; a.print();
a -= b;
cout<<"\nAsignacion: a -= b => "; a.print();
a /= b;
cout<<"\nAsignacion: a /= b => "; a.print();
cout<<endl;
//probando la sobrecarga para << y >>
abeliano abel(5);
cout<<"Probando operadores de entrada/salida"<<endl;
cout<<abel<<endl;
cin>>abel;
cout<<abel;
cout<<endl;
system("PAUSE");
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder