public Fraccion Simplificar(Fraccion f) { Fraccion fraccionsimplificada; int n = (f.myEntero * f.mydenominador) + f.mynumerador; int d = f.mydenominador; int e = 0; bool negativo = false; if (n < 0) { negativo = true; n *= -1; } int mcd = MaximoComunDivisor(n, d); if (mcd != 0) { n = n / mcd; d = d / mcd; if (n >= d) { e = n / d; n = n - (e * mydenominador); } if (negativo && e > 0) { e *= -1; } if (negativo && e > 0) { e *= -1; } } fraccionsimplificada = new Fraccion(n, d); return(fraccionsimplificada); }
static void Main(string[] args) { Fraccion f1 = new Fraccion(2, 10); Fraccion f2 = new Fraccion(2, 4); Fraccion f3 = new Fraccion(2.4); Fraccion res; Console.WriteLine(f1 + f3); res = f2 + f3; Console.WriteLine(res); res = f3 * f1; Console.WriteLine(res); res = f1 / f3; Console.WriteLine(res); if (f1 > f3) { Console.WriteLine("es mayor"); } else { Console.WriteLine("Es menor"); } Console.ReadKey(); }
private void lbligual_Click(object sender, EventArgs e) { Fraccion f1 = new Fraccion((int)numNumerador1.Value, (int)numDenominador1.Value); Fraccion f2 = new Fraccion((int)numNumerador1.Value, (int)numDenominador1.Value); Fraccion resultado = null; switch (cboOperacion.Text) { case "+": resultado = f1.Sumar(f2); break; case "X": resultado = f1.Multiplicar(f2); break; case "-": resultado = f1.Restar(f2); break; case "/": resultado = f1.Dividir(f2); break; default: MessageBox.Show("Falta seleccionar la operacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } lblResultado.Text = resultado.ToString(); }
public Fraccion Dividir(Fraccion otra) { int n1 = MyNumerador + (myEntero * mydenominador); int n2 = otra.MyNumerador + (otra.MyEntero * otra.mydenominador); Fraccion resultado = new Fraccion(n1 * otra.MyDenominador, n2 * MyDenominador); resultado = Simplificar(resultado); return(resultado); }
public Fraccion Dividir(Fraccion otra) { int n1 = numerador + (entero * denominador); int n2 = otra.numerador + (otra.entero * otra.denominador); Fraccion resultado = new Fraccion(n1 * otra.denominador, n2 * denominador); resultado = Simplificar(resultado); return(resultado); }
/// <summary> /// Realiza la división de dos fracciones /// </summary> /// <param name="fr1"></param> /// <param name="fr2"></param> /// <returns></returns> public static Fraccion operator /(Fraccion fr1, Fraccion fr2) { Fraccion fr3; int num, den; num = fr1.numerador * fr2.denominador; den = fr1.denominador * fr2.numerador; fr3 = new Fraccion(num, den); fr3.Simplificar(); return(fr3); }
/// <summary> /// División de dos fracciones. /// </summary> /// <param name="n1">Primera fracción.</param> /// <param name="n2">Segunda fracción.</param> /// <returns>Fracción resultado de la división.</returns> public static Fraccion operator /(Fraccion n1, Fraccion n2) { Fraccion solucion; int numeradorsolucion, denominadorsolucion; numeradorsolucion = n1.numerador * n2.denominador; denominadorsolucion = n1.denominador * n2.numerador; solucion = new Fraccion(numeradorsolucion, denominadorsolucion); // solucion.Simplificar(); return(solucion); }
private void lblCalcularResultado_Click(object sender, EventArgs e) { Fraccion f1 = new Fraccion((int)Numentero1.Value, (int)numNumerador1.Value, (int)numDenominador1.Value); Fraccion f2 = new Fraccion((int)Numentero2.Value, (int)numNumerador2.Value, (int)numDenominador2.Value); Fraccion resultado = null; switch (cboOperacion.Text) { case "+": resultado = f1.Sumar(f2); break; case "-": resultado = f1.Restar(f2); break; case "x": resultado = f1.Multiplicar(f2); break; case "/": resultado = f1.Dividir(f2); break; default: MessageBox.Show("Falta seleccionar la operacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; //break; } //lblResultado.Text = resultado.ToString(); lblLinea.Text = "____"; if (resultado.Entero == 0) { lblResultado.Text = ""; } else { lblResultado.Text = resultado.Entero + ""; } if (resultado.Numerador == 0) { lblResultadoNumerador.Text = ""; lblResultadoDenominador.Text = ""; lblLinea.Text = ""; } else { lblResultadoNumerador.Text = resultado.Numerador + ""; lblResultadoDenominador.Text = resultado.Denominador + ""; } }
public Fraccion Restar(Fraccion otra) { int denominadorComun = MyDenominador * otra.MyDenominador; int e1 = myEntero * denominadorComun; int n1 = (denominadorComun / MyDenominador) * MyNumerador; n1 += e1; int e2 = myEntero * denominadorComun; int n2 = (denominadorComun / otra.MyDenominador) * otra.MyNumerador; n1 += e2; Fraccion resultado = new Fraccion(n1 - n2, denominadorComun); resultado = Simplificar(resultado); return(resultado); }
/// <summary> /// Realiza la resta de dos fracciones /// </summary> /// <param name="fr1">Fraccion1</param> /// <param name="fr2">Fraccion2</param> /// <returns>Resta</returns> public static Fraccion operator -(Fraccion fr1, Fraccion fr2) { Fraccion fr3; int num1, num2, mcm; mcm = MCM(fr1.denominador, fr2.denominador); num1 = fr1.numerador * (mcm / fr1.denominador); num2 = fr2.numerador * (mcm / fr2.denominador); fr3 = new Fraccion((num1 - num2), mcm); fr3.Simplificar(); return(fr3); }
public Fraccion Restar(Fraccion otra) { int denominadorComun = denominador * otra.denominador; int e1 = entero * denominadorComun; int n1 = (denominadorComun / denominador) * numerador; n1 += e1; int e2 = otra.entero * denominadorComun; int n2 = (denominadorComun / otra.denominador) * otra.numerador; n2 += e2; Fraccion resultado = new Fraccion(n1 - n2, denominadorComun); resultado = Simplificar(resultado); return(resultado); }
public Fraccion Simplificar(Fraccion f) { Fraccion fraccionSimplificada; //agregar la parte entera a la fraccion int n = (f.Entero * f.denominador) + f.Numerador; int d = f.Denominador; int e = 0; bool negativo = false; if (n < 0) { negativo = true; n *= -1; } //Calcular el Maximo Comun Divisor int mcd = MaximoComunDivisor(n, d); if (mcd != 0) { n = n / mcd; d = d / mcd; if (n >= d) { e = n / d; n = n % d; } } if (negativo && e > 0) { e *= -1; } if (negativo && e == 0) { n *= -1; } fraccionSimplificada = new Fraccion(e, n, d); //Regresar la fraccion reducida return(fraccionSimplificada); }
/// <summary> /// Resta dos fracciones. /// </summary> /// <param name="n1">Primera fracción.</param> /// <param name="n2">Segunda fracción.</param> /// <returns>Fracción resultado de la resta.</returns> public static Fraccion operator -(Fraccion n1, Fraccion n2) { Fraccion solucion; int numeradorsolucion, denominadorsolucion; if (n1.denominador == n2.denominador) { numeradorsolucion = n1.numerador - n2.numerador; denominadorsolucion = n1.denominador; } else { numeradorsolucion = n1.numerador * n2.denominador - n1.denominador * n2.numerador; denominadorsolucion = n1.denominador * n2.denominador; } solucion = new Fraccion(numeradorsolucion, denominadorsolucion); // solucion.Simplificar(); return(solucion); }
private void btnCalcula_Click(object sender, EventArgs e) { Fraccion f1 = new Fraccion(int.Parse(txt_num1.Text), int.Parse(txtdenom1.Text)); Fraccion f2 = new Fraccion(int.Parse(txtnum2.Text), int.Parse(txtdenom2.Text)); if (rdbsuma.Checked) { etRestultado.Text = (f1 + f2).ToString(); } if (rdbResta.Checked) { etRestultado.Text = (f1 - f2).ToString(); } if (rdbMulti.Checked) { etRestultado.Text = (f1 * f2).ToString(); } if (rdbDiv.Checked) { etRestultado.Text = (f1 / f2).ToString(); } }
Fraccion Reducir(Fraccion f) { if (f.denominador != f.numerador) { bool haymultiplo; int menor = 0; int multiplo = 1; do { if (f.numerador < f.denominador) { menor = f.numerador; } else if (f.numerador > f.denominador) { menor = f.denominador; } int i = 2; haymultiplo = false; while (multiplo <= menor && !haymultiplo) { if (f.numerador % i == 0 && f.denominador % i == 0) { multiplo = i; haymultiplo = true; } i++; } if (haymultiplo) { f.numerador /= multiplo; f.denominador /= multiplo; } } while (haymultiplo); } return(f); }
static void Main(string[] args) { int opcion; opcion = -1; Console.WriteLine("MENÚ"); Console.WriteLine("===="); Console.WriteLine(); Console.WriteLine("1.- Crea una fracción a partir del numerador y denominador"); Console.WriteLine("2.- Crea una fracción a partir de su valor (un número entero)"); Console.WriteLine("3.- Crea una fracción a partir de su valor (un número real)"); Console.WriteLine("4.- Simplifica una fracción"); Console.WriteLine("5.- Obtener el cociente de la división numerador/denominador"); Console.WriteLine("6.- Consultar/modificar el numerador de una fracción"); Console.WriteLine("7.- Consultar/modificar el denominador de una fracción"); Console.WriteLine("8.- Suma de dos fracciones"); Console.WriteLine("9.- Resta de dos fracciones"); Console.WriteLine("10.- Producto de dos fracciones"); Console.WriteLine("11.- División de dos fracciones"); Console.WriteLine("12.- Comprueba si una fracción es menor que otra"); Console.WriteLine("13.- Comprueba si una fracción es mayor que otra"); Console.WriteLine("14.- Comprueba si dos fracciones son iguales"); Console.WriteLine("15.- Comprueba si una fracción es mayor o igual que otra"); Console.WriteLine("16.- Comprueba si una fracción es menor o igual que otra"); Console.WriteLine("17.- Comprueba si una fracción es distinta de otra"); Console.WriteLine("18.- Suma una fracción y un número entero"); Console.WriteLine(); while (opcion != 0) // evita que el programa se cierre tras acabar de ejecutar un ejercicio { Console.WriteLine(); Console.WriteLine("Elige una opción. (0 para salir)"); opcion = int.Parse(Console.ReadLine()); Console.WriteLine(); switch (opcion) { case 1: { int n, d; // creo dos nuevas variables de enteros Fraccion c; // creo un nuevo objeto de la clase Fraccion Console.WriteLine("¡Vamos a crear una fracción!"); Console.WriteLine("¿Cuál es el numerador?"); n = int.Parse(Console.ReadLine()); // guardo el numerador en una variable Console.WriteLine("¿Cuál es el denominador?"); d = int.Parse(Console.ReadLine()); // guardo el denominador en una variable c = new Fraccion(n, d); // inicializo mi objeto "c" con estos valores (mi fracción "c" será igual a 1/4) // utilizando el constructor de la clase Fraccion: public Fraccion(int numerador, int denominador) Console.WriteLine("¡Fracción creada! Aquí la tienes: " + c.ToString()); // muestro por pantalla la fracción recién creada } break; case 2: { int v; Fraccion c; Console.WriteLine("¿Cuál es el valor de la fracción? (debe ser un número entero)"); v = int.Parse(Console.ReadLine()); c = new Fraccion(v); // inicializo mi objeto "c" con este valor (mi fracción "c" será igual a 1/4) // utilizando el constructor de la clase Fraccion: public Fraccion(int cociente) Console.WriteLine("¡Fracción creada! Aquí la tienes: " + c.ToString()); } break; case 3: { // 3,45 double v; Fraccion c; Console.WriteLine("¿Cuál es el valor de la fracción? (pon los decimales con ',' por favor)"); v = double.Parse(Console.ReadLine()); c = new Fraccion(v); // inicializo mi objeto "c" con este valor (mi fracción "c" será igual a 1/4) // utilizando el constructor de la clase Fraccion: public Fraccion(int cociente) Console.WriteLine("¡Fracción creada! Aquí la tienes: " + c.ToString()); } break; case 4: { int n, d; Fraccion c; Console.WriteLine("Dame el numerador y el denominador de la fracción que quieres simplificar, por favor."); n = int.Parse(Console.ReadLine()); d = int.Parse(Console.ReadLine()); c = new Fraccion(n, d); c.Simplificar(); Console.WriteLine("¡Fracción simplificada! Aquí la tienes: " + c.ToString()); } break; case 5: { int n, d; Fraccion c; Console.WriteLine("Dame el numerador y el denominador de la fracción que quieres dividir, por favor."); n = int.Parse(Console.ReadLine()); d = int.Parse(Console.ReadLine()); c = new Fraccion(n, d); Console.WriteLine("Valor de la fracción: " + c.ValorDouble); } break; case 6: { int n, d, nuevovalor; Fraccion c; Console.WriteLine("Dame el numerador y el denominador de la fracción original, por favor."); n = int.Parse(Console.ReadLine()); d = int.Parse(Console.ReadLine()); c = new Fraccion(n, d); Console.WriteLine("El numerador de esta fracción es: " + c.Numerador); Console.WriteLine("Dime el nuevo valor que quieres utilizar como numerador."); nuevovalor = int.Parse(Console.ReadLine()); c.Numerador = nuevovalor; Console.WriteLine("La nueva fracción es: " + c.ToString()); } break; case 7: { int n, d, nuevovalor; Fraccion c; Console.WriteLine("Dame el numerador y el denominador de la fracción original, por favor."); n = int.Parse(Console.ReadLine()); d = int.Parse(Console.ReadLine()); c = new Fraccion(n, d); Console.WriteLine("El denominador de esta fracción es: " + c.Denominador); Console.WriteLine("Dime el nuevo valor que quieres utilizar como denominador."); nuevovalor = int.Parse(Console.ReadLine()); c.Denominador = nuevovalor; Console.WriteLine("La nueva fracción es: " + c.ToString()); } break; case 8: { int n1, n2, d1, d2; Fraccion f1, f2, fsuma; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); fsuma = f1 + f2; Console.WriteLine(f1.ToString() + " + " + f2.ToString() + " = " + fsuma.ToString()); } break; case 9: { int n1, n2, d1, d2; Fraccion f1, f2, fresta; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); fresta = f1 - f2; Console.WriteLine(f1.ToString() + " - " + f2.ToString() + " = " + fresta.ToString()); } break; case 10: { int n1, n2, d1, d2; Fraccion f1, f2, fproducto; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); fproducto = f1 * f2; Console.WriteLine(f1.ToString() + " * " + f2.ToString() + " = " + fproducto.ToString()); } break; case 11: { int n1, n2, d1, d2; Fraccion f1, f2, fdivision; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); fdivision = f1 / f2; Console.WriteLine(f1.ToString() + " / " + f2.ToString() + " = " + fdivision.ToString()); } break; case 12: { int n1, n2, d1, d2; Fraccion f1, f2; bool esmenorono; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); esmenorono = f1 < f2; if (esmenorono) { Console.WriteLine("La fracción " + f1.ToString() + " es menor que la fracción " + f2.ToString() + "."); } else { Console.WriteLine("La fracción " + f1.ToString() + " NO es menor que la fracción " + f2.ToString() + "."); } } break; case 13: { int n1, n2, d1, d2; Fraccion f1, f2; bool esmayorono; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); esmayorono = f1 > f2; if (esmayorono) { Console.WriteLine("La fracción " + f1.ToString() + " es mayor que la fracción " + f2.ToString() + "."); } else { Console.WriteLine("La fracción " + f1.ToString() + " NO es mayor que la fracción " + f2.ToString() + "."); } } break; case 14: { int n1, n2, d1, d2; Fraccion f1, f2; bool esigualono; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); esigualono = f1 == f2; if (esigualono) { Console.WriteLine("Las fracciones " + f1.ToString() + " y " + f2.ToString() + " son iguales."); } else { Console.WriteLine("Las fracciones " + f1.ToString() + " y " + f2.ToString() + " NO son iguales."); } } break; case 15: { int n1, n2, d1, d2; Fraccion f1, f2; bool mayoroigual; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); mayoroigual = f1 >= f2; if (mayoroigual) { Console.WriteLine("La fracción " + f1.ToString() + " es mayor o igual que la fracción " + f2.ToString() + "."); } else { Console.WriteLine("La fracción " + f1.ToString() + "no es mayor o igual que la fracción " + f2.ToString() + "."); } } break; case 16: { int n1, n2, d1, d2; Fraccion f1, f2; bool menoroigual; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); menoroigual = f1 <= f2; if (menoroigual) { Console.WriteLine("La fracción " + f1.ToString() + " es menor o igual que la fracción " + f2.ToString() + "."); } else { Console.WriteLine("La fracción " + f1.ToString() + "no es menor o igual que la fracción " + f2.ToString() + "."); } } break; case 17: { int n1, n2, d1, d2; Fraccion f1, f2; bool esdistinta; Console.WriteLine("Dame, en este orden, numerador y denominador de la primera fracción y numerador y denominador de la segunda."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); n2 = int.Parse(Console.ReadLine()); d2 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); f2 = new Fraccion(n2, d2); esdistinta = f1 != f2; if (esdistinta) { Console.WriteLine("Las fracciones " + f1.ToString() + " y " + f2.ToString() + " NO son iguales."); } else { Console.WriteLine("Las fracciones " + f1.ToString() + " y " + f2.ToString() + " son iguales."); } } break; case 18: { int n1, d1, entero1; Fraccion f1, fsuma; Console.WriteLine("Dame, en este orden, numerador y denominador de la fracción y el número entero que le quieres sumar."); n1 = int.Parse(Console.ReadLine()); d1 = int.Parse(Console.ReadLine()); entero1 = int.Parse(Console.ReadLine()); f1 = new Fraccion(n1, d1); fsuma = f1 + entero1; Console.WriteLine(f1.ToString() + " + " + entero1.ToString() + " = " + fsuma.ToString()); } break; default: Console.WriteLine("Este ejercicio no existe."); break; } } Console.ReadKey(); }
public static Fraccion operator /(Fraccion f1, Fraccion f2) { Fraccion f3 = new Fraccion(f1.numerador * f2.denominador, f1.denominador * f2.numerador); return(f3.Reducir(f3)); }