Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algobox factorisation second degré

Posté par
jiel
24-11-12 à 11:57

Bonjour, je dois programmer un algorithme permettant de donner la factorisation éventuelle de ax²+bx+c (niveau première S),
Ci-dessous ce que j'ai fais mais il ne fonctionne pas...
Pourriez vous m'aider à trouver pourquoi il ne fonctionne pas ?
Merci d'avance

Algobox factorisation second degré

Posté par
Glapion Moderateur
re : Algobox factorisation second degré 24-11-12 à 12:33

Il faut écrire Si (Delta ==0) ALORS
et puis je ne comprends pas bien tes affichages.

Je te l'ai réécris (tu peux le copier/coller en mode éditeur de texte si tu veux le tester) :
J'ai dû mettre pas mal d'instructions de confort d'écriture pour que ça affiche bien les + et - dans l'expression factorisée, mais c'est du détail.

VARIABLES
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
c EST_DU_TYPE NOMBRE
Delta EST_DU_TYPE NOMBRE
xi EST_DU_TYPE NOMBRE
x0 EST_DU_TYPE NOMBRE
xj EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE a
LIRE b
LIRE c
AFFICHER "Polynôme à étudier : "
AFFICHER a
AFFICHER "x²"
SI (b>0) ALORS
DEBUT_SI
AFFICHER "+"
FIN_SI
AFFICHER b
AFFICHER "x"
SI (c>0) ALORS
DEBUT_SI
AFFICHER "+"
FIN_SI
AFFICHER* c
Delta PREND_LA_VALEUR b*b-4*a*c
AFFICHER "Le discriminant vaut Delta = "
AFFICHER* Delta
SI (Delta < 0) ALORS
DEBUT_SI
AFFICHER* "Pas de solution dans R"
FIN_SI
SI (Delta==0) ALORS
DEBUT_SI
x0 PREND_LA_VALEUR -b/(2*a)
AFFICHER "Une racine double :"
AFFICHER* x0
AFFICHER "Le polynôme se factorise en : "
AFFICHER a
AFFICHER "(x-"
AFFICHER x0
AFFICHER* ")²"
FIN_SI
SI (Delta > 0) ALORS
DEBUT_SI
xi PREND_LA_VALEUR (-b+sqrt(Delta))/(2*a)
xj PREND_LA_VALEUR (-b-sqrt(Delta))/(2*a)
AFFICHER "Deux racines :"
AFFICHER xi
AFFICHER " et "
AFFICHER* xj
AFFICHER "Le polynôme se factorise en : "
AFFICHER a
AFFICHER "(x"
SI (xi>0) ALORS
DEBUT_SI
AFFICHER "-"
FIN_SI
SINON
DEBUT_SINON
xi PREND_LA_VALEUR -xi
AFFICHER "+"
FIN_SINON
AFFICHER xi
AFFICHER ")(x"
SI (xj>0) ALORS
DEBUT_SI
AFFICHER "-"
FIN_SI
SINON
DEBUT_SINON
xj PREND_LA_VALEUR -xj
AFFICHER "+"
FIN_SINON
AFFICHER xj
AFFICHER* ")"
FIN_SI
FIN_ALGORITHME

Posté par
jiel
re : Algobox factorisation second degré 24-11-12 à 13:15

Merci beaucoup, cela me semble bien mais ça me met erreur de calcul à cette ligne : x0 PREND_LA_VALEUR -b/(2*a)???

Posté par
jiel
re : Algobox factorisation second degré 24-11-12 à 13:24

Il fallait mettre -b/2*a sans les parenthèses...

Posté par
mathafou Moderateur
re : Algobox factorisation second degré 24-11-12 à 13:46

Bonjour

pour complèter ce qui a été dit,
ton algorithme initial :
"je ne comprends pas tes affichages" disait Glapion
moi, c'était tes calculs qui me faisaient bondir !
x PREND_LA_VALEUR a*(x-x0)*(x_x0)
c'est quoi cette variable x pas définie ??
tu calculais ici une valeur numérique, pas du texte symbolique !

quant au /(2*a) ou /2*a il faut mettre les parenthèses, cela ne représente pas du tout le même calcul, donc ni le même résultat !
ton "erreur" ne vient pas des parenthèses mais d'autre chose, ces parenthèses là sont obligatoires !!!
exemple 1/2*3 = 1.5 (= (1/2)*3 = 3/2)
1/(2*3) = 0.166666 (= 1/6)



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 1742 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 !