2017-09-14 1 views
-9

Je sais que cela me demande d'utiliser if déclarations. Mais comment puis-je faire cela?Racine du polynôme quadratique avec Python

Écrivez un programme qroots.py qui lit trois flotteurs a, b, c à partir de la ligne de commande et calcule/imprime les racines du polynôme quadratique ax**2 + bx + c = 0. Votre programme doit gérer uniquement le cas lorsque des racines réelles existent, c'est-à-dire lorsque les valeurs de a, b, c produisent un discriminant non négatif b**2 − 4ac >= 0. Lorsque le discriminant est négatif, votre programme ne doit imprimer qu'un message indiquant qu'il n'existe aucune racine réelle.

Indice: math.sqrt() est la fonction intégrée qui renvoie la racine carrée d'un nombre.

J'ai ce jusqu'à présent:

import sys 
import math 

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

Terminal devrait faire:

qroots.py 1 -3 2

1,0 2,0

+3

s'il vous plaît lire comment demander dans SO. ce n'est pas un site pour résoudre les devoirs. montrez ce que vous avez fait –

+1

indice: https://en.wikipedia.org/wiki/Quadratic_formula –

+1

Bienvenue dans StackOverflow! Avez-vous lu sur [comment demander] (https://stackoverflow.com/help/how-to-ask) avant de poser cette question? – Jerrybibo

Répondre

0

lu le entrée à partir de la ligne de commande (indice: utilisez sys.argv). Aussi, vous aurez besoin de comprendre comment convertir les chaînes en nombres python. Puis, vérifiez si b**2-4*a*c < 0. Si oui, alors soulevez un ValueError à propos de ce qu'il n'y a pas de vraies racines.

résoudre Else pour les racines: roots = (b ± sqrt(b**2-4*a*c))/(2*a)

0

Procédure comme decribed dans mon commentaire et la réponse de @Joran Beasley:

import sys 
from math import sqrt 

a, b, c = sys.argv[1:] 
a = float(a) 
b = float(b) 
c = float(c) 
if b**2-4*a*c < 0: 
    print("there's no real root") 
else: 
    print((-b+sqrt(b**2-4*a*c))/(2*a), (-b-sqrt(b**2-4*a*c))/(2*a)) 

Si vous le souhaitez, vous pouvez également vérifier si le discriminant est nul et seulement imprimer l'une des deux solutions (qui sont évidemment égales dans ce cas).