/* No encapsulo este metodo en la clase Function porque romperia con la abstracción de la clase y todas las subclases de esta heredarian este método. */
        private Function SelectFunction(string functionName, double a, double b, double c)
        {
            if (CosXFunction.GetFormula().Equals(functionName))
            {
                return(new CosXFunction(a, b));
            }
            else if (SenXFunction.GetFormula().Equals(functionName))
            {
                return(new SenXFunction(a, b));
            }
            else if (ExponentialFunction.GetFormula().Equals(functionName))
            {
                return(new ExponentialFunction(a, b));
            }
            else if (FirstGradeFunction.GetFormula().Equals(functionName))
            {
                return(new FirstGradeFunction(a, b));
            }
            else if (SecondGradeFunction.GetFormula().Equals(functionName))
            {
                return(new SecondGradeFunction(a, b, c));
            }
            else if (FractionalFunction.GetFormula().Equals(functionName))
            {
                return(new FractionalFunction(a, b));
            }

            return(null);
        }
        /* No encapsulo este metodo en la clase Function porque romperia con la abstracción de la clase y todas las subclases de esta heredarian este método. */
        private String[] InitializeFunctionComboBox()
        {
            String[] functionList =
            {
                CosXFunction.GetFormula(),
                SenXFunction.GetFormula(),
                ExponentialFunction.GetFormula(),
                FirstGradeFunction.GetFormula(),
                SecondGradeFunction.GetFormula(),
                FractionalFunction.GetFormula()
            };

            return(functionList);
        }