/// <summary> /// Nos devolverá la resta de dos fracciones. /// </summary> /// <param name="f1">Objeto</param> /// <param name="f2">Objeto</param> /// <returns>Objeto</returns> public static Fraccion operator -(Fraccion f1, Fraccion f2) { if (f1.denominador == f2.denominador) { Fraccion f3 = new Fraccion(f1.numerador - f2.numerador, f1.denominador); return(f3); } else { Fraccion f3 = new Fraccion(1, 1); f3.denominador = MCM(f1.denominador, f2.denominador); f3.numerador = ((f3.denominador / f1.denominador) * f1.numerador) - ((f3.denominador / f2.denominador) * f2.numerador); return(f3); } }
static void Main(string[] args) { int numerador, denominador; double numerod; List <Fraccion> ListaF = new List <Fraccion>(); int contadorF; Console.Write("¿Cuantás fracciones quieres? : "); contadorF = int.Parse(Console.ReadLine()); #region "NumeroDeFracciones" for (int i = 1; i <= contadorF; i++) { string opcion; Console.WriteLine("Sera una fracción completa(1),fracción siendo el valor unico el numerador(2) o un valor decimal(3)"); opcion = Console.ReadLine(); switch (opcion) { case "1": { Console.Write("Dime el numerador de la " + i + "ª fracción : "); numerador = int.Parse(Console.ReadLine()); Console.Write("Dime el denominador de la " + i + "ª fracción : "); denominador = int.Parse(Console.ReadLine()); ListaF.Add(new Fraccion(numerador, denominador)); } break; case "2": { Console.Write("Dime el numerador de la " + i + "ª fracción : "); numerador = int.Parse(Console.ReadLine()); ListaF.Add(new Fraccion(numerador)); } break; case "3": { Console.Write("Dime el valor decimal de la " + i + "ª fracción : "); numerod = double.Parse(Console.ReadLine()); ListaF.Add(new Fraccion(numerod)); } break; } Console.WriteLine(); } #endregion #region "Menu" int opcion2 = 0; while (opcion2 != 6) { Console.WriteLine("1º Sumar las fracciones 2º Restar las fracciones"); Console.WriteLine("3º Multiplicar las fracciones 4º Dividir las fracciones"); Console.WriteLine("5º Igualar dos fracciones 6º Salir"); opcion2 = int.Parse(Console.ReadLine()); switch (opcion2) { case 1: { int contador = ListaF.Count - 1; Fraccion f3 = ListaF[contador]; contador--; while (contador > -1) { f3 = f3 + ListaF[contador]; contador--; } Console.WriteLine("La fracción sin simplificar : " + f3); f3.Simplificar(); Console.WriteLine("La fracción simplificada : " + f3); } break; case 2: { int contador = ListaF.Count - 1; Fraccion f3 = ListaF[contador]; contador--; while (contador > -1) { f3 = f3 - ListaF[contador]; contador--; } Console.WriteLine("La fracción sin simplificar : " + f3); f3.Simplificar(); Console.WriteLine("La fracción simplificada : " + f3); } break; case 3: { int contador = ListaF.Count - 1; Fraccion f3 = ListaF[contador]; contador--; while (contador > -1) { f3 = f3 * ListaF[contador]; contador--; } Console.WriteLine("La fracción sin simplificar : " + f3); f3.Simplificar(); Console.WriteLine("La fracción simplificada : " + f3); } break; case 4: { int contador = ListaF.Count - 1; Fraccion f3 = ListaF[contador]; contador--; while (contador > -1) { f3 = f3 / ListaF[contador]; contador--; } Console.WriteLine("La fracción sin simplificar : " + f3); f3.Simplificar(); Console.WriteLine("La fracción simplificada : " + f3); } break; case 5: { int numero, numero2; Console.Write("Elige tu fracción : "); numero = int.Parse(Console.ReadLine()); Console.Write("Elige otra fracción : "); numero2 = int.Parse(Console.ReadLine()); Console.WriteLine(); if (ListaF[numero - 1] > ListaF[numero2 - 1]) { Console.WriteLine("Tu primera fracción es mayor que la segunda"); } else { Console.WriteLine("Tu segunda fracción es mayor que la primera"); } if (ListaF[numero - 1] == ListaF[numero2 - 1]) { Console.WriteLine("Tus dos fracciones son iguales"); } else { Console.WriteLine("Tus dos fracciones son distintas"); } if (ListaF[numero - 1] < ListaF[numero2 - 1]) { Console.WriteLine("Tu primera fracción es menor que la segunda"); } else { Console.WriteLine("Tu segunda fracción es menor que la primera"); } } break; case 6: { opcion2 = 6; } break; default: break; } Console.WriteLine(); } #endregion Console.Clear(); Console.ReadKey(); }
/// <summary> /// Nos devolverá la división de dos fracciones. /// </summary> /// <param name="f1">Objeto</param> /// <param name="f2">Objeto</param> /// <returns>Objeto</returns> public static Fraccion operator /(Fraccion f1, Fraccion f2) { Fraccion f3 = new Fraccion(f1.numerador * f2.denominador, f1.denominador * f2.numerador); return(f3); }