Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 13:32
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!):
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...
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:06
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
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 14:19
Réponse rapide
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 ... je suis le seul qui programme donc ça serait dommage qu'ils essaient pas de comprendre un peu ce que je leur donne :3
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 14:32
Je viens de tester 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à...)
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 14:35
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
Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 14:46
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 ^^
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:03
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
Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 15:11
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 ^^
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:18
En fait, je viens de regarder, tout est vide! Je pige pas
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
Autorisation : Membre
Nb de messages : 85
Inscrit le : Sam 20 Juil 2013, 17:00
Posté le : Mer 16 Oct 2013, 15:22
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 ^^
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:23
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! ^^
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 15:29
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)).
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Mer 16 Oct 2013, 15:36
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
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
PS: Je reviens dans quelques heures, j'ai pas mal de choses à faire, donc ne vous pressez pas pour me répondre
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 16 Oct 2013, 21:14
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?
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.
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 17 Oct 2013, 1:31
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)
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Jeu 17 Oct 2013, 1:49
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
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 17 Oct 2013, 2:05
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)
Autorisation : Membre
Nb de messages : 11
Inscrit le : Mer 16 Oct 2013, 13:19
Posté le : Ven 18 Oct 2013, 1:38
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)