Bonjour,
Je suis actuellement en pleine programmation en langage python, et comment dire... Je galère. Mon programme a une erreur, et je ne sais pas laquelle.
Voici le sujet :
2) Il faut le remodifier pour que :
• avec deux racines distinctes
• si a=1 et x1=-1 et x2=-3 alors le programme affichera : (x+1)(x+3)
• puis traiter tous les cas : x1 > 0 et x2 > 0 etc...
• puis faire de même avec a≠1.
• avec une racine double
• si a=1 et x0=-1 alors le programme affichera : (x+1)^2
• puis on traite tous les cas
• puis faire de même avec a≠1
#!/usr/bin/python
from math import *
import os
a=float(input('a='))
b=float(input('b='))
c=float(input('c='))
d=b**2-4*a*c
print ('Delta=',d)
if (d<0):
print ('Delta < 0 : il n\'y a pas de solution dans IR')
elif (d == 0):
x0=-b/(2*a)
print ('Solution double x0=',x0)
else:
x1=(-b-sqrt(d))/(2*a)
x2=(-b+sqrt(d))/(2*a)
print ('x1=',x1)
print ('x2=',x2)
x=1
if (d>0) :
if a == 1 :
if x1<0 and x2<0 :
print('La forme factorisee est : (x+x1)*(x+x2)')
if x1<0 and x2>0 :
print('La forme factorisee est : (x+x1)*(x-x2)')
if x1>0 and x2<0 :
print('La forme factorisee est : (x-x1)*(x+x2)')
if x1>0 and x2>0 :
print('La forme factorisee est : (x-x1)*(x-x2)')
Et, je fais un test avec a=1 b=2 c=-3
Je trouve un delta de 16 et les deux racines, là tout va bien. Mais pour la forme factorisée, le programme me donne la forme correcte, mais avec x1 et x2, et non les racines qu'il calcul plus tôt, il me met le texte...
Auriez-vous une idée de pourquoi il ne fonctionne pas ?
D'avance merci
Bonjour,
Si j'ai compris ce que vous demandiez, c'est parfaitement normal : vos (x+x1)*(x+x2) et les autres sont inclus dans des print, fonctions qui n'ont pour rôle que d'afficher du texte et non des valeurs de variables.
Si on prend print('La forme factorisee est : (x+x1)*(x+x2)') par exemple, pour que cela affiche les valeurs de x1 et x2, il faut plutôt mettre :
print('La forme factorisee est : (x+', x1, ')*(x+', x2, ')')
Quelque chose du genre.
Merci bien, cela fonctionne.
Mais savez-vous par hasard comme l'on fait pour ne pas avoir les apostrophes et les virgules autour de x1 et x2 ?
Selon les versions de Python, parfois il affiche les caractères comme les , ou les ' dans la DOS.
Si vous utilisez la dernière version (3.3.0) normalement il n'y a aucun problème que ce soit dans la DOS ou dans l'IDLE.
C'est bizarre parce que moi ça m'affiche bien (dans le cas où x1=4; x2=9) :
La forme factorisee est : (x+ 4 )*(x+ 9 )
Sans de virgules ni d'apostrophes.
Et dans l'IDLE.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :