Page 1 of 4

[programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:04
by RoMz34
Bonjours,
Je vais aujourd'hui vous presentez mon tout premier programme, je me debrouille pas encore trés bien, je vais donc le posté ici pour que vous puissiez en juger par vous même et m'aidiez a l'améliorer :)

Il concerne le Delta Discriminant ! C'est quoi ? quelque rappel de la 1 er S peut etre ? ;) !

En gros :

Lorsqu'on a une équation de second degrés (polynôme de second degré) de ce type :

ax²+bx+c = 0

alors on peut appliqué le Delta discriminant (signe : triangle (lettre grec Delta ) )

Delta = b²-4ac

Ensuite trois possibilité :

Delta 0 , deux solution = x1 = (-b +racine carré de delta) / (2a)

x2 = (-b -racine carré de delta) / (2a)

Delta = 0 , une solution double = x = -b / 2a

Delta
Voila maintenant on peut attaquer la parti programmation donc je vous présente mon travail :


Code: Select all

1 : ClrHome
2 : Disp "AX^2+BX+C = 0"
3 : Prompt A
4 : If A = 0
5 : Then
6 : Disp "IMPOSSIBLE"
7 : Stop
8 : End
9 : Prompt B
10 : Prompt C
11 : ClrHome
12 : Disp "DELTA:"
13 : Disp "B^2-4AC"
14 : (B^2)-(4AC) - D
15 : Disp "Delta="
16 : Disp D
17 : If D0
18 : Then
19 : Disp "2 SOLUTIONS"
20 : Output(1,1," // effacer le : done.
21 : 0 - Z
22 : Disp " " // sautez une ligne
23 : Input "0 : SUIVANT",Z
24 : ClrHome
25 : Disp "X1=(-B+√D)/(2A)
26 : Disp "X2=(-B-√D)/(2A)
27 : (-B+√D)/(2A) - I
28 : (-B-√D)/(2A) - J
29 : Disp " "
30 : Disp "X1=",I
31 : Disp "X2=",J
32 : End
33 :
34 : If D0
35 : Then
36 : Disp "0 SOLUTION."
37 : End
38 :
39 : If D=0
40 : Then
41 : Disp "1 SOLUTION"
42 : Disp "DOUBLE"
43 : Disp " "
44 : OutPut (1,1,"
45 : 0 - Z
46 : Input "0:SUIVANT",Z
47 : ClrHome
48 : Disp "X=(-B)/(2A)"
49 : (-B)/(2A) - K
50 : Disp "X=",K
51: End


Voila ! donc vous avez certainement relever :

45 : 0 - Z
46 : Input "0:SUIVANT",Z

Ces deux lignes me pose certainement le plus gros soucis ^^ !

En effet j'aimerai que l'utilisateur en appuyant simplement sur ENTER passe a la suite ... j'ai essayé plusieur methode en vain ... je fait donc appel a vous ! j'aimerai que quand on arrive a cette ligne , l'utilisateur puisse, au lieu de taper 0 puis ENTER , taper simplement ENTER pour passez a la suite !! merci ^^


Deuxieme chose : Les majuscules ... j'aimerai avoir le mode minuscule mais impossible de branchez ma calculette a l'ordi faute de vista ... j'ai tout essayé , de TI Connect en passant par TI graph link (qui ne s'installe meme pas c'est dire que je peut faire les prog que sur la calculette) a TiLP ... rien ne marche ^^

Donc si vous avez une solution aidez moi a résoudre ce probleme , je cherche aussi un programme pour programmez le language TI basic autre que TI graph link !! merci

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:25
by Syfo
Utilise la fonction pause()
Entre parenthèse, tu peux mettre de l'écriture, comme un simple disp():

au lieu de :

Code: Select all
disp("0:SUIVANT
pause(

tu peux faire
Code: Select all
pause("0: SUIVANT



edit: je ne sais pas si ça t'intéresse, mais tu peux optimiser ton code avec quelques petits trucs simples: compresser plusieurs disp en un seul en séparant avec une virgule, enlever des parenthèses. Mais c'est sûr que c'est moins lisible après.

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:39
by Bisam
Même chose pour les "Prompt", tu peux écrire
Code: Select all
Prompt B,C
à la place de
Code: Select all
Prompt B
Prompt C


A part ça, j'espère que ce programme est uniquement destiné à t'apprendre à programmer sur ta calculatrice ... car sinon des dizaines de programmes faisant la même chose et même bien plus existent déjà.

Pour ton problème de minuscules et tes problème de transfert, je te conseille vivement de faire des recherches sur le forum ainsi que dans les Tutos qui sont sur la page d'accueil, tu trouveras certainement ta réponse.

Enfin, pour ta dernière question, elle est incompréhensible : le TI Basic est un langage... et le TI Graph Link, comme son nom l'indique, est un câble (souvent agrémenté d'un logiciel de transfert) servant à relier l'ordinateur et la calculatrice. Il n'y a aucun rapport entre les 2 !

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:44
by RoMz34
Je sais qu'il y en a pas mal moi même j'en utilise un ^^ mais comme je ne savais pas par quoi commencer et qu'en ce moment on etudie sa ... ben sa me tenter ;) !! sinon merci, j'essaie desuite pour pause( , seulement une petite question (enfin je verrais bien) mais peut ont mettre pause( sans rien derriere ? ^^ voila :) et merci pour les petites aide !!

Un autre probleme vien, j'aimerais affiché X1 = (-b+racin carré de delta) / 2a en chiffre ... pas avoir la solution directement ... pense tu que cela est possible ? si oui comment ? merci ^^

EDIT : ok pour pause c'est géniale merci ;)

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:47
by ced78fr
regarde mon programme EQUATION il fait ça, mais c'est assez compliqué à gérer sur 83+, normalement je sors un nouveau programme pour ceci sous peu (début 2010) surprise....

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:50
by Syfo
Oui, calcule combien de place prend chaque nombre, et insére les nombres au milieu avec output(). Bon j'suis pas très clair, donc exemple:

(_ = un espace)
Code: Select all
Output(1,3,"=(-__+__)/2*__
//le output va à la ligne de lui même
Output(1,1,X1
Output(1,6,b
Output(2,2,[racine carrée de delta]
Output(2,6,a

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:52
by RoMz34
ok mais cela va m'affiché les lettre a , b etc ... pense tu qu'on peut les remplacé par les valeurs ? :s ...

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 20:58
by Syfo
Oui. Comme dans l'exemple, tu mets la variable sans guillemets. Ca affiche sa valeur.

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 21:02
by Marco
Syfo wrote:Utilise la fonction pause()
Entre parenthèse, tu peux mettre de l'écriture, comme un simple disp():

au lieu de :

Code: Select all
disp("0:SUIVANT
pause(

tu peux faire
Code: Select all
pause("0: SUIVANT



edit: je ne sais pas si ça t'intéresse, mais tu peux optimiser ton code avec quelques petits trucs simples: compresser plusieurs disp en un seul en séparant avec une virgule, enlever des parenthèses. Mais c'est sûr que c'est moins lisible après.


Mais Syfo, d'où tu sors toutes ces parenthèses ?
Elles existent pas xD

Code: Select all
Disp "0:SUIVANT
Pause

Code: Select all
Pause "0: SUIVANT



Bisam wrote:Enfin, pour ta dernière question, elle est incompréhensible : le TI Basic est un langage... et le TI Graph Link, comme son nom l'indique, est un câble (souvent agrémenté d'un logiciel de transfert) servant à relier l'ordinateur et la calculatrice. Il n'y a aucun rapport entre les 2 !

Mal compris la question, bisam. Ti graph link sert à éditer les programmes en basic, RoMz34 cherche un autre éditeur de programmes sur PC.

RoMz34 wrote:Un autre probleme vien, j'aimerais affiché X1 = (-b+racin carré de delta) / 2a en chiffre ... pas avoir la solution directement ... pense tu que cela est possible ? si oui comment ?

Le plus simple consiste à passer en mode graphique en utilisant la fonction Text(

Code: Select all
:Text(0,0,"X1=(-",B,"+sqrt(",D,"/(2*",A,")")

simplifiée en
Code: Select all
:Text(0,0,"X1=(-",B,"+sqrt(",D,"/(2*",A,")

comme l'a fait remarquer Syfo

Re: [programme] Delta Discriminant

Unread postPosted: 09 Sep 2009, 21:11
by RoMz34
Code: Select all
1 : ClrHome
2 : Disp "AX^2+BX+C = 0"
3 : Prompt A
4 : If A = 0
5 : Then
6 : Disp "IMPOSSIBLE"
7 : Stop
8 : End
9 : Prompt B,C
10 : ClrHome
11 : Disp "D = B^2-4AC"
12 : (B^2)-(4AC) - D
13 : Disp " "
14 : Disp "Delta="
15 : Disp D
16 : Disp " "
17 : If D0
18 : Then
19 : Disp "2 SOLUTIONS"
20 : Output(1,1," // effacer le : done.
21 : Disp " " // sautez une ligne
22 : Pause
23 : ClrHome
24 : Disp "X1=(-B+√D)/(2A)
25 : Disp " "
26 : Disp "ET"
27 : Disp " "
28 : Disp "X2=(-B-√D)/(2A)
29 : Pause
30 : ClrHome
31 : (-B+√D)/(2A) - I
32 : (-B-√D)/(2A) - J
33 : Disp " "
34 : Disp "X1=",I
35 : Disp "X2=",J
36 : End
37 :
38 : If D0
39 : Then
40 : Disp "0 SOLUTION."
41 : End
42 :
43 : If D=0
44 : Then
45 : Disp "1 SOLUTION"
46 : Disp "DOUBLE"
47 : Disp " "
48 : OutPut (1,1,"
49 : Pause
50 : ClrHome
51 : Disp "X=(-B)/(2A)"
52 : Pause
53 : ClrHome
54 : (-B)/(2A) - K
55 : Disp "X=",K
56 : End




Et voici :) mon programme tout refait (pas encore terminer)


EDIT : Merci a Syfo et Marco pour leur grande aide ;) !!!
Je suis pas encore trop expérimenté sur l'ecran graphique :s ... mais je vais tester tout sa , deja la mon programme est plus clair ^^