Page 1 of 2

aide programme discriminant

Unread postPosted: 13 Jul 2010, 12:17
by fredo77
Salut à tous,

Totalement néophyte en programmation, je me suis lancé, dans l'idée de progresser un peu, dans un petit programme proposant une rédaction de la résolution des équations du second degré.

Le code du programme est proposé ci-dessous, celui-ci fonctionne mais je ne suis pas satisfait du rendu de l'affichage de :

Code: Select all
Δ=",b,"² - 4 × ",a,"×",c,"=",d


C'est du bricolage et j'aimerais connaître une façon efficace d'afficher en détail le calcul du discriminant.

Comment peut-on faire ?

D'avance merci :)

Code: Select all
Define LibPub delta(a,b,c)=
Prgm
©delta(a,b,c)
Local x0,x1,x2,d
b^(2)-4*a*c→d
If d0 Then
Disp "Le trinôme ",a*x^(2)+b*x+c,"a pour discriminant : Δ=",b,"² - 4 × ",a,"×",c,"=",d," 0"
((−b-i*√(−d))/(2*a))→x1
((−b+i*√(−d))/(2*a))→x2
Disp "Il admet deux racines complexes conjuguées : x=",x1,"ou x=",x2
ElseIf d=0 Then
Disp "Le trinôme ",a*x^(2)+b*x+c,"a pour discriminant : Δ=",b,"² - 4 × ",a,"×",c,"=",d
((−b)/(2*a))→x0
Disp "Il admet une racine réelle double : x=",x0
Else
Disp "Le trinôme ",a*x^(2)+b*x+c,"a pour discriminant : Δ=",b,"² - 4 × ",a,"×",c,"=",d," 0"
((−b-√(d))/(2*a))→x1
((−b+√(d))/(2*a))→x2
Disp "Il admet deux racines réelles distinctes : x=",x1,"ou x=",x2
EndIf
EndPrgm

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 13:13
by critor
Bonjour.


Qu'est-ce qui te contrarie dans l'affichage ?
Qu'appelles-tu le détail du calcul ?

La TI-Nspire ne fait pas du calcul pas à pas.
Si tu veux afficher les étapes d'un calcul, il faut faire exactement comme tu as procédé avec un affichage formaté de termes ou facteurs extraits du calcul.

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 13:28
by Laurae
Regarde dans mon pack BAC, il y a des programmes pour le second degré (dont un explicite tous les calculs) pour regarder comment il faut faire.

Classeurs Maths Programmes Nouveaux Programmes Équa. 2nd degré.tns
http://tiplanet.org/index.php?mod=ar ... oirid=1892

Inspire toi du contenu.

Dans le cas où tu ne pourrais pas y accéder (par exemple pas de cable pour transférer les fichiers), Disp accepte une "infinité d'arguments".

ex: On veut afficher "Delta = (calcul détaillé) = (résultat final)"
et supposons qu'on a dans les variables a, b, et c les coefficients du polynôme.
On le programme sous cette forme là : Disp "Delta = ",b²,"-",4*a*c," = ",b²-4*a*c
cela affichera par exemple avec le polynôme 4x²+3x+6 (a=4, b=3, c=6) : "Delta = 9-96 = -87"

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 14:13
by fredo77
Bonjour,

Merci de ta réponse :)

critor2000 wrote:Qu'est-ce qui te contrarie dans l'affichage ?


C'est du chipotage, mais, par exemple, quand le discriminant est égal à 4, je trouve l'affichage un peu moche (différence de formatage entre le 4 correspondant à b et celui correspondant au facteur dans 4ac). De même, différence de taille de police entre le nombre 12 et le 0 de bout de ligne (cf capture d'écran) :

Image

critor2000 wrote:Qu'appelles-tu le détail du calcul ?


J'aimerais que le programme affiche ceci en affectant à a, b et c leurs valeurs numériques mais sans calculer :
Code: Select all
b²-4xaxc


D'avance merci ;)

Edit : est-ce possible de faire une capture d'écran de l'affichage de la calculatrice ou bien n'est-ce possible de capturer que celui de l'émulateur PC ?

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 14:45
by critor
Les deux 4 ne sont pas formatés de la même façon, car l'un est une valeur numérique, et l'autre un caractère.


Voici une toute petite modification qui t'affichera le 4 comme une valeur numérique, et donc comme les autres 4 éventuels des calculs:

Code: Select all
Disp "Δ=",b,"² - ",4," × ",a,"×",c,"=",d



Sinon oui, tu peux faire une capture d'écran de l'affichage de la calculatrice avec le logiciel de transfert.

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 19:50
by fredo77
@Laurae : merci de ton message, je ne manquerai de consulter ton programme en guise d'exemple :):

critor2000 wrote:une toute petite modification qui t'affichera le 4 comme une valeur numérique, et donc comme les autres 4 éventuels des calculs:

Code: Select all
Disp "Δ=",b,"² - ",4," × ",a,"×",c,"=",d


Merci, j'ai pu gagner un peu en lisibilité :):

Dans l'expression b²- 4 x a x c, toujours dans l'idée de faire qqch de propre, il me reste à gérer le parenthésage lorsque les coefficients sont négatifs afin d'éviter des écritures telles que -1² - 4 x -2 x 3.

Re: aide programme discriminant

Unread postPosted: 13 Jul 2010, 23:58
by Bisam
Il suffit de mettre des parentheses dans tous les cas...

Re: aide programme discriminant

Unread postPosted: 14 Jul 2010, 08:43
by fredo77
Salut à tous,

Bisam wrote:Il suffit de mettre des parentheses dans tous les cas...


C'est une possibilité en effet. J'ai géré le parenthésage, je posterai ce midi le fichier tns. Si quelqu'un aura l'occasion de tester afin de m'en donner son avis, cela sera avec plaisir :;):

Re: aide programme discriminant

Unread postPosted: 14 Jul 2010, 09:07
by Laurae
Tu peux gèrer le problème des nombres positifs/négatifs au niveau du carré :

Code: Select all
If b0 Then
  Disp "Δ=(",b,")² - ",4," × ",a,"×",c,"=",d
Else
  Disp "Δ=",b,"² - ",4," × ",a,"×",c,"=",d
EndIf

Re: aide programme discriminant

Unread postPosted: 14 Jul 2010, 11:50
by fredo77
Salut,

Laurae wrote:Tu peux gèrer le problème des nombres positifs/négatifs au niveau du carré


Merci de ta réponse, c'est comme cela que j'ai procédé quant aux signes de a, b et c. J'ai travaillé un peu la forme et le format des solutions à l'aide de propfrac().

Voilà où j'en suis, si quelqu'un a envie de tester et de me donner son avis : lien