/// <summary> /// Fonction de puissance pour une variable /// </summary> /// <param name="formule"></param> /// <param name="puissance"></param> /// <returns></returns> public static Formule Pow(Formule formule, double puissance) { if (!Evaluation) { return(new Formule(Math.Pow(formule.Resultat, puissance))); } if (puissance == 2) { return(Pow2(formule)); } if (puissance == 3) { return(Pow3(formule)); } if (puissance == 4) { return(Pow4(formule)); } if (formule.Priorite == PrioVar) { return(new Formule(formule.Litterale + "^" + puissance, formule.Numerique + "^" + puissance, Math.Pow(formule.Resultat, 2), PrioVar, formule.NombreOperations + 1)); } return(new Formule(formule.LitteraleParenthese + "^" + puissance, formule.NumeriqueParenthese + "^" + puissance, Math.Pow(formule.Resultat, 2), PrioVar, formule.NombreOperations + 1)); }
/// <summary> /// Fonction Racine carre pour une formule /// </summary> /// <param name="f">formule concernée</param> /// <returns></returns> public static Formule Sqrt(Formule f) { if (!Evaluation) { return(new Formule(Math.Sqrt(f.Resultat))); } return(new Formule("sqrt" + f.LitteraleParenthese, "sqrt" + f.NumeriqueParenthese, Math.Sqrt(f.Resultat), PrioVar, f.NombreOperations + 1)); }
/// <summary> /// Logarithme népérien pour une formule /// </summary> /// <param name="f">Formule concernée</param> /// <returns></returns> public static Formule Ln(Formule f) { if (f.Resultat <= 0) { throw new ArithmeticException("Logarithme népérien négatif"); } return(new Formule("ln" + f.LitteraleParenthese, "ln" + f.NumeriqueParenthese, Math.Log(f.Resultat), PrioVar, f.NombreOperations + 1)); }
/// <summary> /// Fonction cube /// </summary> /// <param name="formule"></param> /// <returns></returns> public static Formule Pow4(Formule formule) { if (!Evaluation) { return(new Formule(Math.Pow(formule.Resultat, 2))); } if (formule.Priorite == PrioVar) { return(new Formule(formule.Litterale + "⁴", formule.Numerique + "⁴", Math.Pow(formule.Resultat, 3), PrioVar, formule.NombreOperations + 1)); } return(new Formule(formule.LitteraleParenthese + "⁴", formule.NumeriqueParenthese + "⁴", Math.Pow(formule.Resultat, 3), PrioVar, formule.NombreOperations + 1)); }
public static Var ToVar(this Formule formule, string nom) { return(new Var(nom, formule)); }
protected bool Equals(Formule other) { return(Resultat.Equals(other.Resultat)); }