예제 #1
0
        /// <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);
            }
        }
예제 #2
0
        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();
        }
예제 #3
0
        /// <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);
        }