Math domain error

brieux -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
import math

Bonjour, voici mon programme:

print("Nous allons réaliser un trinôme du second degré de tel que P= aX²+bX+c")
a = float(input("Donner un nombre a: "))
b = float(input("Donner un nombre b: "))
c = float(input("Donner un nombre c: "))
delta = b*b -4*a*c
racine = math.sqrt(delta)
if delta < 0:
    print ("Le polynome n'a pas de racine réelle")
elif delta > 0:
    print ("Solution 1= ", ((-b-racine)/2*a), "Et Solution 2 = ", (-b+racine)/2*a)
elif delta == 0:
    print ("Le polynome a une solution= ", -b/(2*a))


Il m'affiche "math domain error"

Merci d'avance pour votre aide,
Brieux.

Configuration: Windows / Chrome 86.0.4240.75


Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE

4 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Quelles valeurs as tu entrés ?
    Car, je suppose que ton erreur se situe sur la ligne
    racine = math.sqrt(delta)
    

    Et si delta est négatif, il me semble normal que tu obtiennes cette erreur.

    Il faudrait déplacer ta ligne 6 sous le if de ta ligne 9

    0
  2. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Et il y une double erreur de calcul ligne 10 que tu n'as pas en ligne 12.
    0
  3. quent217 Messages postés 424 Statut Membre 348
     
    Bonjour,
    si tu veux éviter toutes les erreurs, il faut aussi gérer le cas où a est égale à 0.
    0
  4. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour,

    En gros, ca ressemblerait à ça:

    # -*- coding:Latin-1 -*-
    from math import *
    
    print("\nRéalisons un trinôme du second degré de tel que P= ax²+bx+c")
    
    a = float(input("Coefficient a: "))
    b = float(input("Coefficient b: "))
    c = float(input("Coefficient c: "))
    
    if(a == 0.0):
    	print('''\na est nul: ce n'est pas un polynome du second degré ''')
    else:
    	print('\nLe trinôme : {}x²+{}x+{}'.format(int(a),int(b),int(c)))
    	
    	delta = b**2-4*a*c
    	print('\nDelta = {}, donc: '.format(delta))
    	
    	if delta < 0:
    	    print ("\nLe polynome n'a pas de racine réelle")
    	elif delta > 0:
    	    print ("\nSolution 1 : {:.3f}\nSolution 2 : {:.3f}".format((-b-sqrt(delta))/(2*a), (-b+sqrt(delta))/(2*a)))
    	elif delta == 0:
    	    print ("\nLe polynome a une solution : {:.3f}".format(-b/(2*a)))
    
    0