Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionpublic double calculer(double a, double b, double c, double x) { return (a * x * x) + (b * x) + c; } public double resoudre_equation(double a, double b, double c, double min, double max, double seuil, int Essais) { double x; double resultat; double resultat_Min = calculer(a, b, c, min); double resultat_Max = calculer(a, b, c, max); for (int i = 1; i <= Essais; i++) { x = (min + max) / 2; resultat = calculer(a, b, c, x); if (Math.Abs(resultat) <= seuil) return x; // Valeur en dessous le seuil de tolérance else if (resultat > resultat_Min) { min = x; resultat_Min = resultat; } else { max = x; resultat_Max = resultat; } } throw new Exception("Zéro non trouvé"); }
public double calculer(double a, double b, double c, double x) { return (a * x * x) + (b * x) + c; } public double resoudre_equation(double a, double b, double c, double min, double max, double seuil, int Essais, Boolean First) { if (((b * b) - (4 * a * c)) < 0) throw new Exception("Pas de solution (Delta négatif)"); double x; double resultat; for (int i=0; i<Essais; i++) { x = (min + max) / 2; resultat = calculer(a, b, c, x); if (Math.Abs(resultat) <= seuil) return x; // Valeur en dessous le seuil de tolérance if (First) if (resultat < 0) min = x; else max = x; else if (resultat > 0) min = x; else max = x; } throw new Exception("Zéro non trouvé"); } private void Form1_Load(object sender, EventArgs e) { try { MessageBox.Show(resoudre_equation(1, 1, 2, -10, 10, 0, 5000, true).ToString(),"Première solution"); MessageBox.Show(resoudre_equation(1, 1, 2, -10, 10, 0, 5000, false).ToString(), "Seconde solution"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }