namespace Pr ctica_12__Consola_
{
class Racional
{
// Declaraci¢n de variables
public int numerador;
public int denominador;
static int i, mayor, num, den;
// Constructor sin par metros no utilizado
public Racional()
{
numerador = 1;
denominador = 2;
}
// Constructor con par metros
public Racional(int numerador, int denominador)
{
this.numerador = numerador;
this.denominador = denominador;
}
public void asignarNumerador(int numerador)
{
this.numerador = numerador;
}
public int obtenerNumerador()
{
return numerador;
}
public void asignarDenominador(int denominador)
{
this.denominador = denominador;
}
public int obtenerDenominador()
{
return denominador;
}
// Propiedad para el Numerador
public int Numerador
{
get
{
return numerador;
}
set
{
numerador = value;
}
}
// Propiedad para el Denominador
public int Denominador
{
get
{
return denominador;
}
set
{
denominador = value;
}
}
// M‚todo para saber si el n£merador es mayor o el denominador
static int Mayor(int num, int den)
{
if (num > den)
{
return num;
}
else
{
return den;
}
}
// Operador suma sobrecargado
public static Racional operator +(Racional Q1, Racional Q2)
{
den = Q1.denominador * Q2.denominador;
num = Q2.denominador * Q1.numerador + Q1.denominador * Q2.numerador;
mayor = Mayor(num, den);
for (i = 2; i < mayor; i++)
{
while (num % i == 0 && den % i == 0)
{
num = num / i;
den = den / i;
}
}
Racional newQ = new Racional(num, den);
return newQ;
}
// Operador resta sobrecargado
public static Racional operator -(Racional Q1, Racional Q2)
{
den = Q1.denominador * Q2.denominador;
num = Q2.denominador * Q1.numerador - Q1.denominador * Q2.numerador;
mayor = Mayor(num, den);
for (i = 2; i < mayor; i++)
{
while (num % i == 0 && den % i == 0)
{
num = num / i;
den = den / i;
}
}
Racional newQ = new Racional(num, den);
return newQ;
}
// Operador multiplicaci¢n sobrecargado
public static Racional operator *(Racional Q1, Racional Q2)
{
den = Q1.denominador * Q2.denominador;
num = Q1.numerador * Q2.numerador;
mayor = Mayor(num, den);
for (i = 2; i < mayor; i++)
{
while (num % i == 0 && den % i == 0)
{
num = num / i;
den = den / i;
}
}
Racional newQ = new Racional(num, den);
return newQ;
}
// Operador divisi¢n sobrecargado
public static Racional operator /(Racional Q1, Racional Q2)
{
den = Q1.denominador * Q2.numerador;
num = Q1.numerador * Q2.denominador;
mayor = Mayor(num, den);
for (i = 2; i < mayor; i++)
{
while (num % i == 0 && den % i == 0)
{
num = num / i;
den = den / i;
}
}
Racional newQ = new Racional(num, den);
return newQ;
}
}
}
No hay comentarios:
Publicar un comentario