Page 1 of 1

Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:27
by ghali bennouna
Bonsoir,
je dois faire un algorithme qui calcule discriminant d et en fonction du résultat affiche soit "2 racines" (et calcule x1 et x2) soit "une double racine" (et calcule x0) soit aucune solution.
Ci joint l'algorithme
merci de me venir en aide

Code: Select all
Define reso2ndeg()=
Prgm
Local d
Request"a",a
Request"b",b
Request"c",c
d:=b2-4ac
If d>0 Then
Disp "2 racines"
Disp "x1=",((-b-root(d))/2a)
Disp "x1=",((-b+root(d))/2a)
ElseIf d=0 Then
Disp "une double racine"
Disp "x0=",(-b/2a)
ElseIf d<0 Then
Disp "aucune solution"
EndIf
Return d
EndPrgm

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:31
by noelnadal
Dis-nous ce qui marche pas, c'est toujours mieux...
À mon avis, il faut déclarer les variables a,b,c comme tu l'as fait pour d.
Et à la fin, ce n'est pas "aucune solution", c'est "aucune solution réelle", mais bon, c'est un détail...

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:36
by ghali bennouna
deja merci
mais je reçois le message d'erreur suivant :
Erreur : le test n'a pas donné de résultat True ou false

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:37
by Hamza.S
il y a des programmes qui le font très bien sur le site comme archives_voir.php?id=16642
ou secdeg archives_voir.php?id=15345
après si tu le fais pour un entrainement pour la programmation c'est très bien
il y a certaines erreur à corriger
d:=b2-4ac il faut l'écrire
d:=b^2-4*a*c
si tu notes ac la calculette le considère comme une seule variable il faut mettre le signe pour distinguer

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:43
by ghali bennouna
Merci bcp Hamza
l'erreur était au niveau de delta il fallait mettre les * entre 4*a*c

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 17:48
by Hamza.S
pour une amélioration rapide
Code: Select all
Define reso2ndeg(a,b,c)=
Prgm
Local d
d:=b^2-4*a*c
If d>0 Then
Disp "2 racines"
Disp "x1=",((-b-root(d))/(2a))
Disp "x1=",((-b+root(d))/(2a))
ElseIf d=0 Then
Disp "une seule racine"
Disp "x0=",(-b/(2a))
ElseIf d<0 Then
Disp "aucune solution"
EndIf
Return d
EndPrgm

pour le lancer il suffit de mettre les données de a,b et c entre les parenthèses reso2ndeg(1,2,1)
si tu as une Nspire avec moteur CAS ça peut encore s'améliorer

Re: Algo résolution 2nd degré

Unread postPosted: 27 Sep 2015, 19:37
by ghali bennouna
merci bcp j'ai en effet une CX CAS et a bientôt