Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

programme en langage python

Posté par
CB67850
17-02-13 à 14:01

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

Posté par
Alishisap
re : programme en langage python 17-02-13 à 14:13

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.

Posté par
Alishisap
re : programme en langage python 17-02-13 à 14:15

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.

Posté par
CB67850
re : programme en langage python 17-02-13 à 14:39

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 ?

Posté par
Alishisap
re : programme en langage python 17-02-13 à 14:48

Dans le code source ou dans l'affichage ?
Utilisez-vous la console DOS de Python ou bien l'IDLE ?

Posté par
CB67850
re : programme en langage python 17-02-13 à 14:52

J'utilise l'IDLE.
Pourquoi? Cela change-t-il quelque chose ?

Posté par
Alishisap
re : programme en langage python 17-02-13 à 14:59

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.

Posté par
Alishisap
re : programme en langage python 17-02-13 à 15:00

Je voulais dire -4 et -9

Posté par
CB67850
re : programme en langage python 17-02-13 à 15:01

Je n'ai pas la dernière version, mais la version 2.7

Les virgules et les apostrophes ne me dérangent pas plus que ça, mais je pense que mon prof préférerait sans..
Mais si vous ne savez pas, ne vous cassez pas la tête, je vais le laisser tel quel.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1768 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !