예제 #1
0
        static void Main(string[] args)
        {
            List <Operacao> operacoes = new List <Operacao>();

            operacoes.Add(new Soma());
            operacoes.Add(new Subtracao());
            operacoes.Add(new Multiplicacao());
            operacoes.Add(new Divisao());
            operacoes.Add(new Modulo());
            operacoes.Add(new Exponenciacao());
            operacoes.Add(new Fatorial());

            for (int i = 0; i < operacoes.Count; i++)
            {
                Console.WriteLine("{0} para {1}", i, operacoes[i].ToString());
            }

            try
            {
                Console.Write("-> ");
                int opcao = int.Parse(Console.ReadLine());

                Operacao calculo = operacoes[opcao];
                double   resultado;


                double num1, num2;

                Console.Write("Digite um número: ");
                num1 = double.Parse(Console.ReadLine());

                if (opcao <= 5)
                {
                    Console.Write("Digite o 2° número: ");
                    num2 = double.Parse(Console.ReadLine());

                    resultado = calculo.FazConta(num1, num2);
                }
                else
                {
                    Fatorial fat = new Fatorial();
                    resultado = fat.FazConta(num1);
                }


                Console.WriteLine("Resultado: " + resultado);
            }
            catch (FormatException)
            {
                Console.WriteLine("Era esperado um número");
            }
            catch (ArgumentOutOfRangeException)
            {
                Console.WriteLine("Não existe essa operação");
            }
            catch (ExceptionDivisaoPorZero)
            {
                Console.WriteLine("Não é permitido a divisão por zero");
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            List <Operacao> operacoes = new List <Operacao>();

            operacoes.Add(new Soma());
            operacoes.Add(new Subtracao());
            operacoes.Add(new Multiplicacao());
            operacoes.Add(new Divisao());
            operacoes.Add(new Modulo());
            operacoes.Add(new Exponenciacao());
            operacoes.Add(new Fatorial());

            for (int i = 0; i < operacoes.Count; i++)
            {
                Console.WriteLine("{0} para {1}", i, operacoes[i].ToString());
            }

            Console.Write("-> ");
            int opcao = int.Parse(Console.ReadLine());

            Operacao calculo = operacoes[opcao];
            double   resultado;


            double num1, num2;

            Console.Write("Digite um número: ");
            num1 = double.Parse(Console.ReadLine());

            if (opcao <= 5)
            {
                Console.Write("Digite o 2° número: ");
                num2 = double.Parse(Console.ReadLine());

                resultado = calculo.FazConta(num1, num2);
            }
            else
            {
                resultado = calculo.FazConta(num1);
            }


            Console.WriteLine("Resultado: " + resultado);
        }