Poster un nouveau sujet Poster une réponse
Programme d'équation... (help?)
Auteur Message
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 13:32   Citer 

Bonjour à tous,
Je suis nouveau, et je fais pas mal de programme sur une vieille calculette, la TI-82... Du coup il me manque un tas de fonctions qui me seraient utiles T.T
Voici la copie de mon programme actuel (j'explique après mon problème!):

Forme mise à jour du programme:

Code
:Float
:Menu("1ER ET 2ND DEGRE","1ER DEGRE",T,"2ND DEGRE",U,"FORME FRACTION",
V,"DEVELOPPEMENT",W,"DELTA",X,"INEQUATION",Y,"EXIT",Z)
:Lbl T
:ClrHome
:Disp "AX+BY=C"
:Disp "DX+EY=F"
:Input "A=",A
:Input "B=",B
:Input "C=",C
:Input "D=",D
:Input "E=",E
:Input "F=",F
:((C*E)-(B*F))/((A*E)-(B*D))->G
:((A*F)-(C*D))/((A*E)-(B*D))->H
:ClrHome
:Disp "X=",G>Frac
:Disp "Y=",H>Frac
:Stop
:Lbl U
:ClrHome
:Input "A(X²)=",A
:Input "B(X)=",B
:Input "C=",C
:(B²)-(4AC)->D
:ClrHome
:If D<0
:Then
:Disp "D=",D
:Output(4,1,"PAS DE SOLUTION")
:End
:If D=0
:Then
:Disp "D=",D
:(-B)/(2A)->E
:Disp "X="
:Disp E>Frac
:Fix 2
:Output(6,6,"SOIT:")
:Output(6,12,E)
:Float
:End
:If D>0
:Then
:Disp "D=",D
:(-(B)+([racine de](D)))/(2A)->F
:(-(B)-([racine de](D)))/(2A)->G
:Output(3,3,"X1=")
:Output(3,6,F)
:Output(4,1,"OU")
:Output(5,3,"X2=")
:Output(5,6,G)
:Stop
:Lbl V
:ClrHome
:Disp "SI D>0 :"
:Disp "X1="
:Disp F>Frac
:Disp "OU X2="
:Disp G>Frac
:Stop
:Lbl W
:ClrHome
:Output(1,5,"(-B+[racine de](D)
:Output(2,1,"X1= ---------"
:Output(3,7,"2A")
:Output(5,5,"-(")
:Output(5,7,B)
:Output(5,9,")+[racine de]("
:Output(5,12,D)
:Output(6,2,"X1=------------")
:Output(7,8,"2*"
:Output(7,10,A)
:Output(8,1,"APPUYER ENTER"
:Pause
:ClrHome
:Output(1,5,"(-B-[racine de](D)
:Output(2,1,"X2= ---------")
:Output(3,7,"2A")
:Output(5,5,"-(")
:Output(5,7,B)
:Output(5,9,")-[racine de](")
:Output(5,12,D)
:Output(6,2,"X2=------------")
:Output(7,8,"2*")
:Output(7,10,A)
:Stop
:Lbl X
:ClrHome
:Output(4,1,"D=B²-4AC")
:Output(2,1,"DELTA:")
:Output(8,2,"=")
:Output(6,3,B)
:Output(6,6,"²-4*")
:Output(6,10,A)
:Output(6,13,"*")
:Output(6,14,C)
:Lbl Y
:[Entête des fonctions Graph]
:ClearDraw
:DrawF AX²+BX+C
:Lbl Z
:Stop



Vous voyez la petite ligne entre les 2 Labels?
J'aimerais rajouter dans mon programme l'affichage graphique (vous savez la fonction DispGraph!), mais je sais pas comment faire pour faire rentrer mon équation sous la forme AX²+BX+C (sachant que de toute façon, si un des nombres est négatif, il n'apparaitra pas positif... bref) dans le fameux "Y1" de la partie fonction... Quelqu'un souhaiterais-t-il me donner un coup de main?
Merci à l'âme charitable qui me viendra en aide.

Grominet

PS: J'ai pas précisé mais c'est un vieille calculette qui n'as pas la fonction String! C'est pour ça que je peux pas finir le prgm. Et j'ai testé plusieurs types de lignes mais aucune n'as fonctionnée.

PPS: Je l'ai hyper commenté pour les abrutis de ma classe, c'est pour ça qu'il est super long...

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:06   Citer 

Bonjour,

Je ne suis pas sûr d'avoir compris ce que tu veux: tracer la courbe correspondant à la fonction sur le graphique?
Il suffit de faire (pour une fonction de degré 2: AX²+BX+C):

Code
DrawF "AX²+BX+C->Y1 //Pense bien à ouvrir un guillemet


DrawF se trouve dans [2nde],[prgm],[6]
Y1 dans [2nde],[var],[function]

Je vois que ton code n'est pas optimisé.
Un petit conseil: inutile de fermer les guillemets/parenthèses/crochets/accolades devant un retour à la ligne ou un sto(->).
Plus d'infos ici: https://tout82.forumactif.org/t50-candide-ou-l-optimisation

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 14:19   Citer 

Réponse rapide bigmouth.gif
Merci pour l'info, je savais pas comment faire, je vais essayer cet aprèm si j'ai le temps!
Par contre, je sais qu'il n'est pas optimisé et c'est normal! C'est pour les boulets de ma classe qui voudraient s'amuser à déchiffrer le code crazy.gif ... je suis le seul qui programme minied.gif donc ça serait dommage qu'ils essaient pas de comprendre un peu ce que je leur donne :3

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:27   Citer 

Ah oui je vois crazy.gif


Code
Output(5,4,H)>Frac


Ca marche ça?
Tu as une erreur syntaxe normalement... (De toute façon >Frac ne fonctionne qu'avec la fonction Disp (et Pause aussi).

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 14:32   Citer 

Je viens de tester cry.gif Ca fonctionne paaaas, je pense qu'il y a une erreur au niveau de ton "AX²+BX+C->Y1, ça serait pas plutôt une parenthèse?

Code
Code de remplacement
DrawF (AX²+BX+C->Y1



Et pour le "Output" qui traîne dans le prgm --' en fait si tu regardes bien, au dessus, il y un label qui n'as aucune issue, et auquel on a aucun accès non plus... en fait c'est une ancienne partie du prgm que j'avais testée et que j'ai bêtement laissée (ahah ça en trompe plus d'un, même moi en le relisant un jour j'ai pas compris pourquoi c'était là...)

 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 14:34   Citer 


Citer : Grominet


Code
Code de remplacement
DrawF (AX²+BX+C->Y1



Non toujours pas! Try again...

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:35   Citer 

Quelle andouille!
Je comptais te faire stocker la fonction pour ensuite l'afficher, mais je me suis rendu compte que c'était inutile, mais j'ai oublié de corriger...

Code
DrawF "AX²+BX+C //C'est bien un guillemet par contre


Il faut donc enlever le ->Y1 qui est ici absurde.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 14:46   Citer 

je pense qu'il s'est contenté de taper "y1" au leiu d'aller dans var pour chercher. pour le output(5,4,H)>Frac, ca ne marche pas sur 82stats, mais peut etre que oui sur les anciennes...

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:50   Citer 

Heu non rien à voir, il ne faut carrément pas mettre Y1 c'est inutile.
Et j'ai testé sur ému, Output(5,2,H)>Frac ne marche bien pas sur une ti82.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:03   Citer 

rpgcreator, je ne suis pas con à ce point là... En fait j'avais déjà cherché comment faire et je connais assez bien ma calculette pour savoir que taper bêtement Y1 entraîne une erreur sur la machine!
En ce qui concerne l'enregistrement de la variable, j'ai été crétin par contre parce que j'ai déjà testé sous la forme AX²+BX+C->Y1 et il ne l'avait pas enregistré puis de toute façon j'avais une erreur affichée!
Je viens de taper la (nouvelle) ligne, mais maintenant, il ne dessine pas la courbe angry.gif

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 15:11   Citer 

es ce que tu n'as pas mis fonctoff quelque part?
es ce qu'un graphique n'est pas "allumé" ?
comme tu as une ti82, mets au moins Prompt A au lieu de Input"A=",A, tu perds 5 octets sur chaque fonction!!

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:18   Citer 

En fait, je viens de regarder, tout est vide! Je pige pas cry.gif
est-ce que le fait de mettre A, B et C perturberait le programme?
Je connais pas la fonction donc je suis un peu largué sur ce truc, je vais faire 2-3 recherches

 Adresse email Haut de page Bas de page 
 
rpgcreator



Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 15:22   Citer 

quand le programme affiche le graph, regarde en haut a droite si ya pas une barre qui monte sans arret. si ya rien, c'est la ligne de m@t qui merde, sinon, c'est un probleme d'affichage.

----------------------
je prefere la ti-82stats a la fumette ^^
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:23   Citer 

GRAAAAAA J'ai trouvé! C'est ce maudit guillemet qui foutait le bordel! Je me disais que ce n'était pas du texte, et que du coup je comprenais pas ce que venait foutre le guillemet dans la fonction!

Merci pour le renseignement! Je reviendrais si j'ai besoin d'aide et pour jeter un pti coup d’œil de temps en temps! ^^

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 15:29   Citer 

Ah oui autant pour moi je pensais qu'il fallait mettre un guillemet pour indiquer que c'est une fonction et pas une valeur à calculer (c'est comme ça que ça fonctionne le plus souvent sur la 82stats(.fr)).

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:36   Citer 

Ah tiens j'avais oublié tant que j'y suis:
Il y a une fonction qui m'exaspère pasque j'arrive pas à l'utiliser cry.gif
C'est la fameuse GetKey qui est censée fonctionner dans une boucle et que je voudrais intégrer dans ce programme.
En gros, j'utiliserais ma touche 0 et ma touche 1 pour accéder directement à la partie du programme qui m’intéresse, c'est à dire que je voudrais passer de mon entrée de variables (avec mes Input et tout), à la partie Delta (label X) en appuyant par exemple sur la touche 1 (qui est soit 82, soit 92, je sais plus trop), ou sinon en appuyant sur 0 on revient au Menu (je pense que j'irais rajouter un Label pour le Goto)

En gros je sais qu'on utilise While et je connais à peu près le principe mais maintenant, mon souci, c'est que je ne sais pas le mettre en application bigmouth.gif

PS: Je reviens dans quelques heures, j'ai pas mal de choses à faire, donc ne vous pressez pas pour me répondre happy.gif

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 21:14   Citer 

L'utilisation du GetKey dépend de ce que tu veux faire lorsqu'on appuye sur une touche: est ce que tu veux attendre qu'on appuye sur une touche, ou bien tester si une touche a été pressée et continuer le prgm sans le bloquer?

Ici une utilisation de getkey dans un snake : https://web.archive.org/web/20140901101450/https://fr.openclassrooms.com:443/informatique/cours/apprenez-a-programmer-en-ti-basic/gerer-la-pression-des-touches
Il ne faut pas bloquer le prgm si on appuye pas sur une touche (sinon le serpent n'avance jamais).

Par contre toi je crois que tu veux attendre un appui sur une touche non?
Alors voici le code:

Code
Lbl X //Tu peux mettre autre chose à la place de X

//On récupère une touche pressée
Repeat Ans //Le code de la touche est seulement stocké dans Ans, c'est suffisant ici.
GetKey
End

If Ans=102 //Touche [0]
Goto A

If Ans=103 //Touche [1]
Goto B

//Sinon c'est qu'on a pas cliqué sur une touche intéressante
Goto X //On recommence


Je pense que tu as compris le principe:
On attend qu'une touche a été pressée, on vérifie si c'est celle qu'on veut, auquel cas on exécute l'action voulue, puis on recommence.

Après tu adaptes les étiques et les test à ton cas.

Par contre évites d'englober le tout dans une boucle infinie, préfère les Goto/Lbl à cause du bogue entre les Goto/Lbl et les boucles ( https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=2757 ).

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 23:57   Citer 

Peut-on stocker la variable ailleurs que dans "Ans"? (Juste question basique pour savoir si jamais je peux utiliser une variable!)

Citer

Code
Lbl X //Tu peux mettre autre chose à la place de X

//On récupère une touche pressée



Pas compris ce passage...

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 17 Oct 2013, 1:31   Citer 

Oui on peut stocker aileurs que dans Ans : il a dit que Ans est suffisant, pas que c'est nécessaire.

Code
Repeat K
getKey->K
End
//tests sur K



-----

Votre montagne pour un dessin est-elle réglée finalement ?

A retenir :
-la fonction DrawF ne cause pas d'erreur autre que la syntaxe, comme les autres calculs de courbes (cela n'aide pas à comprendre qu'on l'utilise mal)
-la fonction DrawF attend un calcul numérique, pas une chaine de caractère. (et les équations de courbes sont donc interprétées numériquement)

Je préfère créer une équation et la dessiner avec Trace afin de permettre à l'utilisateur de la parcourrir s'il veut.
Je rappelle que la désactivation de toutes les courbes peut se faire dès le début avec FnOff.
Si cela est appliqué, pense à dire à tes camarades comment réactiver les courbes : à leur niveau ils se contenteront de savoir que modifier les équations réactive les courbes.

J'avais pensé que l'affectation des équations se fait sans chaine, mais j'oubliais déjà qu'on ne peut pas afficher l'expression ensuite automatiquement.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Jeu 17 Oct 2013, 1:49   Citer 

Maintenant il va falloir que je comprenne le fonctionnement de "Repeat", c'est une fonction que je vois souvent et sur laquelle j'ai du mal à définir une limite... la traduction en français n'est pas très parlante! Je vois pas trop comment elle fonctionne et je ne comprends pas l'utilisation dans un programme! ^^

Je précise que pour les lignes que je veux intégrer dans le programme il me faut un 'If', et que je ne saurais pas transformer d'après le 'Repeat' mais que je vais essayer de m'adapter d'après l'aide de M@t

Merci quand même pour toutes ces réponses! bigmouth.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 17 Oct 2013, 2:05   Citer 

Il y a un tutoriel dans la section article du forum qui parle des trois boucles.
Mon tutoriel sur l'algorithmie (cf ma signature) fait un bilan et des comparaisons des boucles, cela peut te servir accessoirement ici.

Repeat x Until y === répète x jusqu'à y === fait x tant que non(y) === do x while non(y)

Repeat : test à la fin, quitte si condition vraie
While : test au début, quitte si condition fausse
For : affecte la variable au début, puis commence le cycle : compare le compteur à la borne pour quitter si compteur>borne, effectue les actions, incrémente le compteur

Les traductions entre anglais et français sont donnés par le catalogue de ma signature.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Grominet



Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Ven 18 Oct 2013, 1:38   Citer 

Pfiou après 1h de réflexion, j'ai réussi mon programme, ça fonctionne entièrement comme je le veux! Je mettrais le programme quand j'aurais entièrement fini les réglages!

Merci à tous pour vos réponses (plus ou moins précieuses)

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes