Équations du 2nd degré 💻 Travail n° 1 Résolution par factorisation En se basant sur l’exemple donné ci-dessous qui montre comment utiliser le langage Python pour demander des informations à l’utilisateur, effectuer des calculs, faire des tests, afficher un résultat, on vous demande de coder un script Python qui permet de donner les solutions d’une équation du 2nd degré dont les coefficients sont saisis par l’utilisateur. Exemple de code Python fdp-commande.py """Calcul frais de port sur un article Ce script calcule la somme à payer par un client lorsqu'il passe une commande d'un article sur un site internet qui facture des frais de port différents selon le montant de la commande : * 5€ pour les commandes inférieures à 50€ * 3€ pour les commandes comprises entre 50€ et 100€ * gratuit pour les commandes supérieures à 100€ Le client doit saisir le prix unitaire de l'article et la quantité désirée. Le script calcule ensuite la somme totale à payer incluant le prix du ou des articles et les frais de port. """ # Saisies utilisateur prixArticle = float(input("Saisir le prix de l'article : ")) (1) nbArticles = int(input("Saisir la quantitée désirée : ")) (2) # Calcul prix commande hors frais de port montantCommande = nbArticles * prixArticle # Calcul prix total de la commande selon son montant if (montantCommande < 50) : prixTotal = montantCommande + 5 elif ( 50 <= montantCommande < 100) : prixTotal = montantCommande + 3 else : prixTotal = montantCommande # Affichage du prix total print("Prix total de la commande : " + str(prixTotal) + "€") (3) 1 On demande le prix à l’utilisateur sous forme de chaine de caractères (→ input(…)) et on le transforme en nombre réel (→ float(…)) 2 idem pour la quantité sauf que c’est une valeur entière (→ utilisation de int(…) plutôt que float(…)) 3 Pour pouvoir afficher le résultat, il faut d’abord le convertir en chaine de caractères (→ str(…)) Pour le travail demandé, la méthode consiste à : Demander la saisie des coefficients a, b et c de l’équation ax2 + bx + c Calculer le discriminant delta = b2 - 4ac En Python, l’exposant se code **. Exemple : 2**3 donne 8 Calculer les racines selon la valeur du discriminant : delta > 0 : ⇒ 2 racines réelles : r1 = (-b-√delta)/2a r2 = (-b+√delta)/2a En Python, la racine carrée s’obtient avec math.sqrt(x) après avoir importé le module math en début de fichier (→ import math) delta = 0 ⇒ 1 seule racine réelle : r = -b/2a delta < 0 ⇒ 2 racines complexes : r1= -b/2a + i √|delta|/2a r2= -b/2a - i √|delta|/2a En Python la valeur absolue s’obtient avec la fonction abs(x) Proposition de solution eq-2nd-degre.py """Calcule les racines d'une équation du 2nd degré """ import math # Saisies utilisateur coefA = float(input("Saisir le coefficient `a` : ")) coefB = float(input("Saisir le coefficient `b` : ")) coefC = float(input("Saisir le coefficient `c` : ")) # Calcul discriminant delta = coefB ** 2 - 4 * coefA * coefC # Calcul des racines if (delta > 0) : r1 = (-coefB + math.sqrt(delta)) / (2 * coefA) r2 = (-coefB - math.sqrt(delta)) / (2 * coefA) #print("delta = " + str(delta) + " > 0 => r1 = (-b+√delta)/2a ≈ " + str(r1) + " / r2 = (-b-√delta)/2a ≈ " + str(r2) ) # OU pour un affichage qu'avec 2 chiffres après la virgule print("delta = " + "{:.2f}".format(delta) + " > 0 => r1 = (-b+√delta)/2a ≈ " + "{:.2f}".format(r1) + " / r2 = (-b-√delta)/2a ≈ " + "{:.2f}".format(r2) ) elif (delta == 0) : r = -coefB / (2 * coefA) #print("delta = 0 > => r = -b/2a ≈ " + str(r)) # OU pour un affichage qu'avec 2 chiffres après la virgule print("delta = 0 > => r = -b/2a ≈ " + "{:.2f}".format(r)) else : re = -coefB / (2 * coefA) im = math.sqrt(abs(delta)) / (2 * coefA) #print("delta = " + str(delta) + " < 0 => r1 = -b/2a + i √|delta|)/2a ≈ " + str(re) + " + i " + str(im) + " / r2 = b/2a - i √|delta|)/2a ≈ " + str(re) + " - i " + str(im) ) # OU pour un affichage qu'avec 2 chiffres après la virgule print("delta = " + "{:.2f}".format(delta) + " < 0 => r1 = -b/2a + i √|delta|)/2a ≈ " + "{:.2f}".format(re) + " + i " + "{:.2f}".format(im) + " / r2 = b/2a - i √|delta|)/2a ≈ " + "{:.2f}".format(re) + " - i " + "{:.2f}".format(im) ) Références Solving a Second Degree Equation or Inequality → Plusieurs méthodes pour résoudre une équation du 2nd degré 🞄 🞄 🞄 CIEL1IR/ER - Algèbre CIEL1IR/ER - Suites