﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClaseDos
{
    class calculadora
    {
        /// <summary>
        /// Este metodo debera sumar dos numeros.
        /// </summary>
        /// <param name="numero1"></param>
        /// <param name="numero2"></param>
        /// 
        private static void sumar(double numero1, double numero2)
        {
 
            //Console.WriteLine("estoy sumando");

            double suma;

            suma = numero1 + numero2;
            Console.WriteLine("el resultado es: {0}", suma);

        }

        /// <summary>
        /// Este metodo debera restar dos numeros.
        /// </summary>
        /// <param name="numero1"></param>
        /// <param name="numero2"></param>
        /// 
        private static void restar(double numero1, double numero2)
        {

            //Console.WriteLine("estoy restando");

            double resta;

            resta = numero1 - numero2;
            Console.WriteLine("el resultado es: {0}", resta);

        }

        /// <summary>
        /// Este metodo debera multiplicar dos numeros.
        /// </summary>
        /// <param name="numero1"></param>
        /// <param name="numero2"></param>
        /// 
        private static void multiplicar(double numero1, double numero2)
        {

            //Console.WriteLine("estoy estoy multiplicando");

            double multiplicacion;

            multiplicacion = numero1 * numero2;
            Console.WriteLine("el resultado es: {0}", multiplicacion);

        }

        /// <summary>
        /// Este metodo debera dividir dos numeros.
        /// </summary>
        /// <param name="numero1"></param>
        /// <param name="numero2"></param>
        /// 
        private static void dividir(double numero1, double numero2)
        {

            //Console.WriteLine("estoy estoy dividir");

            double dividir;
            int num;

            //dividir = numero1 / numero2;
            //Console.WriteLine("el resultado es: {0}", dividir);

            
            while(!calculadora.validarSiEsDistintoACero(numero2))
            {

                while (!calculadora.validarSiEsDistintoACero(numero2))
                {

                    Console.WriteLine("Error, el numero ingresado debe ser distinto de cero");
                    while (!int.TryParse(Console.ReadLine(), out num))
                    {
                        Console.WriteLine("Error, debe ingresarse un numero");

                    }
                    numero2 = num;
                    
                }

            }
            if (calculadora.validarSiEsDistintoACero(numero2))
            {

                dividir = numero1 / numero2;
                Console.WriteLine("el resultado es: {0}", dividir);

            }
            
        }


        private static bool validarSiEsDistintoACero(double divisor)
        {

            //int num;

            while (divisor == 0)
            {
                /*Console.WriteLine("Error, el numero ingresado debe ser distinto de cero");
                while (!int.TryParse(Console.ReadLine(), out num))
                {
                    Console.WriteLine("Error, debe ingresarse un numero");

                }
                divisor = num;*/
                return false;

            }
            return true;
        }


        public static void calcular(double numero1, double numero2, string operacion)
        {

            switch (operacion)
            {
                case "+":
                    calculadora.sumar(numero1, numero2);
                    break;

                case "-":

                    calculadora.restar(numero1, numero2);
                    break;

                case "*":
                    calculadora.multiplicar(numero1, numero2);
                    break;

                case "/":
                    calculadora.dividir(numero1, numero2);
                    break;
                     
                default:
                    Console.WriteLine("La opcion ingresada no es valida, reingrese: ");
                    operacion = Console.ReadLine();

                    break;
            }

        }


        public static double devuelveMayor(double numero1, double numero2, double numero3)
        {

            
            if (numero1 > numero2 && numero1 > numero3)
            {

                return numero1;

            }
            else if (numero2 > numero1 && numero2 > numero3)
            {

                return numero2;

            }
            else
            {
                return numero3;
            }

        }
        
    }
}
