Page 1 of 2

Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 21:17
by miiniimoyz
Salut !
Alors voila, je souhaite faire un programme qui me permettrais d'avoir le discriminant d'une équation au second degré et qui me calculerai ensuite si Delta est positif, les 2 racines, sauf que voila mon problème...
J'ai un peu farfouiller afin de trouver mon bonheur et j'ai trouver ce code

Code: Select all
delta(a,b,c)
d:=b²-4ac
disp d
if d<0
disp "aucune solution"
if d=0
disp "solution",-b/2a
if d>0 then
disp (-b-rac(d))/2a
disp (-b+rac(d))/2a
stop


Ainsi que celui-ci :
Code: Select all
Define delta(a,b,c)=Func
Local d
If a=0 Then
  Disp "Il faut a non nul"
  Return
Endif
d:=b^2-4a*c
Disp "Le discriminant vaut", d
If d<0 Then
  Disp "Aucune racine réelle"
ElseIf d=0 Then
  Disp "Une seule racine",-b/(2*a)
Else
  Disp "2 racines réelles", (-b-sqrt(d))/(2*a), (-b+sqrt(d))/(2*a)
Endif
EndFunc


Sauf que mon problème ! C'est que même lorsque je le rentre au mot prêt, sois on me donne a chaque fois 0 comme résultat, sois on me dit qu'il y a une erreur

Je me demandé donc si quelqu'un saurais m'éclairer...
Merci d'avance ! :)

PS : Je tiens a préciser que je suis sur une Ti - Nspire CX convertit en CX CAS ;)

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 21:19
by critor
Tu obtiens une erreur quand ?

En tentant de rentrer le programme?
Ou en tentant de l'utiliser?

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 21:31
by miiniimoyz
Lorsque je tente de l'utiliser,

En faite pour le 1er programme, j'avais trouver ma faute, je viens de corrigé,
ça me donner bien le résultat lorsque je tape par exemple

Code: Select all
delta(-4,18,-14) = 100


Mais ne calcule pas ensuite les 2 racines, ou ne me dit pas comme défini : "solution"

Il n'y a que le 2ème programme ou j'ai une erreur, je me rappel plus trop de la phrases ... mais bref, autant continué sur le 1er programme, puisque lui me donne un résultat. :)

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 21:50
by Extra44
Une correction possible de ton 1er programme (tu n'as pas dit quelles corrections tu as effectué...)
Code: Select all
:Local zlocald
:zlocald:=b^(2)-4*a*c
:Disp "Δ=",zlocald
:If zlocald<0 Then
:Disp "aucune solution"
:ElseIf zlocald=0 Then
:Disp "1 solution double:x0=",((−b)/(2*a))
:ElseIf zlocald>0 Then
:Disp "2 solutions : x1=",((−b-√(zlocald))/(2*a))," et x2=",((−b+√(zlocald))/(2*a))
:EndIf

Tu n'as plus qu'à comparer avec ce que tu as ... ;)

Extra44

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 23:12
by miiniimoyz
Non en faite ce n'était pas une erreur du programme, mais plutôt une erreur de ma part, j'avais fait une faute dans l'ecriture ...

Problème toujours non résolu, j'ai seulement le résultat de delta et non la racine, ou bien même la phrase ...

En ce qui concerne votre programme Extra44, je comprend pas trop comment remplir...
Dans cette partie la, que dois-je remplir :
Image

Car j'ai ceci ensuite :
Image

Et je sais pas trop comment remplir ensuite ...

(Désolé, je suis débutant >_<)

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 23:23
by Extra44
Debutant : pas de soucis
Quand tu veux Menu\Insertion\Editeur de programme\nouveau (et que tu as ta capture d'ecran) : tu mets le nom de programme/fonction que tu veux, ici tu avais utilisé "delta" (sans les guillemets)
Si tu veux comparer, tu peux l'appeler delta2 (tu lanceras alors delta2(...)
Voici le code complet si tu veux
Code: Select all
Define delta(a,b,c)=
Func
:Local d
: d:=b^(2)-4*a*c
:Disp "Δ=",d
:If d<0 Then
:Disp "aucune solution"
:ElseIf d=0 Then
:Disp "1 solution double:x0=",((−b)/(2*a))
:ElseIf d>0 Then
:Disp "2 solutions : x1=",((−b-√(d))/(2*a))," et x2=",((−b+√(d))/(2*a))
:EndIf
:EndFunc


Alors petite explication de code : après local, tu mets une variable qui sera "locale" au programme courant.
C'est pour cela que j'ai mis zlocald, un nom de variable qui ne sera pas utilisé dans le classeur, alors que d pourrait être utilisé... Aussi pour ne pas compliquer la chose, j'ai remis ci dessus la lettre que tu avais utilisé (d)
Vu que je te mets tout le code, tu n'as plus qu'a compléter ...

Autre explication : Quand tu écris le nom du programme (ou fonction) , le type qui est pour l'instant dans ta capture ci dessus un programme, tu peux lui mettre fonction. La différence entre un programme et une fonction, c'est qu'une fonction renvoie une valeur, alors qu'un programme ne renvoie rien.
Exemple : si tu definis la fonction cube(a) (a^3), en faisant bien attention à renvoyer a^3, alors tu peux utiliser le retour par :
cube(5)*6 -> c'est comme si tu avais fais 5^3 * 6 = "résultat_fonction_cube" * 6
Je sais pas si c'est assez clair :D

A utiliser : tu l'utilise comme tu as fait pour ton programme n°21 :
Dans une page de calcul tu l'appelles par :
Code: Select all
delta(1,4,4)

N'hésite pas à poser des questions si tu en as ...
Extra44

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 12 Dec 2013, 23:42
by miiniimoyz
J'ai directement fait sur ma calculette au lieu de faire à l’émulateur sur l'ordinateur, et j'ai eux un message d'erreur sur ma calculette :

Erreur

Il y a trop d'arguments

Le nombre excessif d'arguments spécifié pour la fonction ou la commande rend son évaluation impossible.


Sachant que j'ai testé avec un de mes énoncés :

Le polynomes de second degrès est :
Code: Select all
-4x^2+18x-14 


et j'ai rentré dans la calculette :
Code: Select all
delta(-4,18,-14)


et j'ai eux le message d'erreur ci-dessus.

EDIT et PS : Merci pour vos conseils et votre aide ! :D

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 13 Dec 2013, 12:56
by AnToX98
C'est pas normal...

Vérifie que tu as bien enregistré ton code avec :nsct: + :nsb:

Sinon, on pourrait avoir ton code ?

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 13 Dec 2013, 13:09
by critor
Trop d'arguments ?

Tu n'aurais pas oublié de bien taper les "a,b,c" entre les parenthèses de la fonction lorsque tu l'as créée ?

Re: Programme pour calculer le discriminent puis les racines

Unread postPosted: 13 Dec 2013, 13:10
by critor
Pour information également, quand la calculatrice te signale une erreur, elle se propose de te montrer à quel endroit du code s'est produit l'erreur.
Cela nous aiderait bien d'avoir ce contexte à chaque fois.