Alors voila, je commence un peu à programmer sur TI (82 stats fr en l'occurrence), et ça me plairais beaucoup que vous me donniez des genres "d'exercices" me demandant de faire un programme quelconque, je vous le posterais à la suite de ce topic et ensemble on regardera les éventuelles erreurs, comment optimiser ce programme, etc...
Merci a ceux qui m’aideront, j’attends vos exercices
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 19 Nov 2011, 14:48
Moi je te proposerais bien un petit classique qui n'est pas très dur (pour commencer, ne conaissant pas vraiment ton niveau ).
Disons, un "plus ou moins" : tu dois deviner un chiffre, tu le rentre, et la calto te dit si c'est plus ou si c'est moins.
(avec un peu d'originalité peut-être ? )
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes nouveaux programmes de calcul formel : FCarréFPrime
Projet base de données : ici mais abandonné. Trop de travail ...
p4nzer Invité
Posté le : Sam 19 Nov 2011, 15:35
C'est partit !
Code
:Lbl A
:EffEcr
:Menu("PLUS OU MOINS","JOUER",B,"REGLES",C,"QUITTER",D
:Lbl B
:EffEcr
:entAleat(1,100)->A
:EffVar C
:Lbl E
:Input "NOMBRE : ",B
:If A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Goto E
:Else
:If A<B
:Then
:Disp "C EST MOINS!
:C+1->C
:Goto E
:Else
:If A=B
:Then
:EffEcr
:Output(4,5,"GAGNE !
:Output(5,5,"EN COUP" //Laisser 4 espaces
:Output(5,9,C
:Pause
:Goto F
:End
:Lbl F
:Menu("REJOUER ?","OUI",B,"NON",A
:Lbl C
:EffEcr
:Output(1,1,"LA CALTO CHOISI UN NOMBRE QUE TU DOIS TROUVER EN UN MINIMUM D ESSAIS. BONNE CHANCE !
:Pause
:Goto A
:Lbl D
:EffEcran
:EffVar T
:For(T,1,40
:Output(4,4,"MERCI D AVOIR
:Output(5,4,"JOUE
:End
:EffEcr
:Output(1,1," "
L'originalité c'est pas trop mon fort mais je pense que le prog est bon
Merci The K !
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 19 Nov 2011, 15:44
Le programme marche bel et bien.
Alors, question 2 sur le même programme !
Faire en sorte de ne plus avoir de labels / goto, à l'exception de ceux des menus !
Indice : utiliser une boucle inconditionnelle
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 19 Nov 2011, 15:47
C'est ça.
Tu mets tu as juste une architecture bizzare, mais le programme est bon.
Il y a bien sur plein de moyens de l'optimiser (je dis ça pour ceux qui vont sortir une version méga courte en disant "prends ça"), mais le tien fonctionne bien.
Est-ce que tu connais l'utilisation des fonctions de boucle ? (While, Repeat, For...)
Sinon, deuxième exercice: une balle qui rebondit sur les bords de ton écran.
p4nzer Invité
Posté le : Lun 21 Nov 2011, 17:26
Code
:Lbl A
:EffEcr
:Menu("PLUS OU MOINS","JOUER",B,"REGLES",C,"QUITTER",D
:Lbl B
:EffEcr
:entAleat(1,100)->A
:EffVar C
:Lbl E
:Input "NOMBRE : ",B
:While A!=B
:if A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Else
:If A<B
:Then
:Disp "C EST MOINS!
:C+1->C
:End
:End
:EffEcr
:Output(4,5,"GAGNE !
:Output(5,5,"EN COUP" //Laisser 4 espaces
:Output(5,9,C
:Pause
:Lbl F
:Menu("REJOUER ?","OUI",B,"NON",A
:Lbl C
:EffEcr
:Output(1,1,"LA CALTO CHOISI UN NOMBRE QUE TU DOIS TROUVER EN UN MINIMUM D ESSAIS. BONNE CHANCE !
:Pause
:Goto A
:Lbl D
:EffEcran
:EffVar T
:For(T,1,40
:Output(4,4,"MERCI D AVOIR
:Output(5,4,"JOUE
:End
:EffEcr
:Output(1,1," "
Voila, j'ai remplacé les label par une boucle while (que je ne suis pas du tout sur de maitriser, donc a corriger si faute ).
Pour la balle qui rebondit, je m'y atèle, j'ai un peu moins le temps en ce moment comme je suis en stage
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 21 Nov 2011, 21:11
Euh ... Je ne crois pas qu'il marche ... On a un Label E a un endroit sans Goto E, et ... Justement , le but était de supprimer tous les labels possibles, celui-ci inclus
Allez, encore un essai ?
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes nouveaux programmes de calcul formel : FCarréFPrime
Projet base de données : ici mais abandonné. Trop de travail ...
p4nzer Invité
Posté le : Lun 21 Nov 2011, 22:02
Eh bien il suffit d'enlever le label E non ? Vu que de toute façon il n'y a pas de Goto E et que le menu ne l'utilise pas, il est inutile... ^^ Donc je pense que comme ça c'est correct :
Code
:Lbl A
:EffEcr
:Menu("PLUS OU MOINS","JOUER",B,"REGLES",C,"QUITTER",D
:Lbl B
:EffEcr
:entAleat(1,100)->A
:EffVar C
:Lbl E
:Input "NOMBRE : ",B
:While A!=B
:if A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Else
:If A<B
:Then
:Disp "C EST MOINS!
:C+1->C
:End
:End
:EffEcr
:Output(4,5,"GAGNE !
:Output(5,5,"EN COUP" //Laisser 4 espaces
:Output(5,9,C
:Pause
:Lbl F
:Menu("REJOUER ?","OUI",B,"NON",A
:Lbl C
:EffEcr
:Output(1,1,"LA CALTO CHOISI UN NOMBRE QUE TU DOIS TROUVER EN UN MINIMUM D ESSAIS. BONNE CHANCE !
:Pause
:Goto A
:Lbl D
:EffEcran
:EffVar T
:For(T,1,40
:Output(4,4,"MERCI D AVOIR
:Output(5,4,"JOUE
:End
:EffEcr
:Output(1,1," "
???
Sinon pour la balle je comprends pas, je dois juste faire une balle qui saute sur place sans arret ou y'a t'il un "cahier des charges" plus complet ??
p4nzer Invité
Posté le : Lun 21 Nov 2011, 22:03
Double post désolé, mais c** comme je suis j'ai oublié d'enlever le Lbl E au dessus
Code
:Lbl A
:EffEcr
:Menu("PLUS OU MOINS","JOUER",B,"REGLES",C,"QUITTER",D
:Lbl B
:EffEcr
:entAleat(1,100)->A
:EffVar C
:Input "NOMBRE : ",B
:While A!=B
:if A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Else
:If A<B
:Then
:Disp "C EST MOINS!
:C+1->C
:End
:End
:EffEcr
:Output(4,5,"GAGNE !
:Output(5,5,"EN COUP" //Laisser 4 espaces
:Output(5,9,C
:Pause
:Lbl F
:Menu("REJOUER ?","OUI",B,"NON",A
:Lbl C
:EffEcr
:Output(1,1,"LA CALTO CHOISI UN NOMBRE QUE TU DOIS TROUVER EN UN MINIMUM D ESSAIS. BONNE CHANCE !
:Pause
:Goto A
:Lbl D
:EffEcran
:EffVar T
:For(T,1,40
:Output(4,4,"MERCI D AVOIR
:Output(5,4,"JOUE
:End
:EffEcr
:Output(1,1," "
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 21 Nov 2011, 22:43
Ah navré ! Il ne marche toujours pas je crois, même sans le label
Allons cherche bien c'est une petite erreur très simple mais qui change tout
Euh pour la balle je crois que persa veut dire une balle qui part dans une direction, et qui, quand elle touche un bord, part dans une autre direction ... Un peu comme certains avère sacres de Windows, ou de certains lecteurs DVD ...
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Mes nouveaux programmes de calcul formel : FCarréFPrime
Projet base de données : ici mais abandonné. Trop de travail ...
p4nzer Invité
Posté le : Lun 21 Nov 2011, 23:05
Ok, alors j'ai tapé le prog sur ma calto, et donc le problème c'est qu'on peut entrer seulement un seul nombre et on gagne(si je me suis pas trompé dans le recopiage du prog on a le même ??)...
Donc le problème vient surement de ma boucle, et vu que je sais pas utiliser les boucles ça va etre chaud... haha ^^
Mais dit moi juste si c'est ça l'erreur, et je vais essayer de la résoudre tout seul (comme un grand )
Et pour la balle, je m'y met demain si j'ai le temps, mais je pense pas avoir trop de soucis
Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Mar 22 Nov 2011, 17:37
p4nzer tu devrais t'inscrire.
tu pourrais essayer de faire un morpion ou de faire un jeu en graphique( c'est tout de suite plus gros et plus dur)
bonne continuation...
---------------------- L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.
Peut-etre un indice oui, j'aimerais trouver l'erreur par moi même c'est comme ça qu'on apprend le mieux
Je me suis déjà inscrit, mais ça doit faire 1 ou 2 ans et j'avais totalement zappé ce site, donc je ne trouve plus mon loggin et mon adresse perso est déjà utilisée
Autorisation : Membre
Nb de messages : 118
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 22 Nov 2011, 22:57
Si lorsque tu tape ton nombre, ton écran affiche une suite infini de "C'est plus" ou de "C'est moins" les uns en-dessous des autres, l'erreur vient de là! ^^
Pour limiter au maximum les labal, il est toujours préférable d'avoir toutes tes actions dans la boucle, le input y est compris, bien sûr ^^
Tu as encore deux lignes inutiles dans ton programme (enfin d'après ce que j'ai vu)
----------------------
Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.
Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 23 Nov 2011, 13:59
Voila trouvé
C'était cela que j'avais vu directement.
Bon après si tu veux je vais te simplifier tout ça peut etre un peu ...
Code
:Lbl A
:EffEcr
:Menu("PLUS OU MOINS","JOUER",B,"REGLES",C,"QUITTER",D
:Lbl B
:EffEcr
:entAleat(1,100->A //parenthèse en moins
:EffVar C
:While A!=B
:Input "NOMBRE : ",B
:if A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Else //On supprime une boucle inutile ...
:Disp "C EST MOINS! //Oh d'ailleurs tu as un apostrophe dans le menu angle
:C+1->C
:End
:EffEcr
:Output(4,5,"GAGNE !
:Output(5,5,"EN COUP" //Laisser 4 espaces
:Output(5,9,C
:Pause //Label F inutile
:Menu("REJOUER ?","OUI",B,"NON",A
:Lbl C
:EffEcr
:Output(1,1,"LA CALTO CHOISI UN NOMBRE QUE TU DOIS TROUVER EN UN MINIMUM D ESSAIS. BONNE CHANCE !
:Pause
:Goto A
:Lbl D
:EffEcran
:EffVar T
:For(T,1,40
:Output(4,4,"MERCI D AVOIR
:Output(5,4,"JOUE
:End
:EffEcr
:Output(1,1," //Un espace suffit ;)
Et voila la ça devrait le faire ... si non eh bien je crois vor d'où cela peut venir ... mais je pense que la ça marche !
Tapenade : jeu en graphique = graphismes très énervants. Faut vraiment le vouloir déja que pour un morpion en graphique c'est ***** alors que c'est sensé être simple avec qqes lignes
---------------------- La la la ...
Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO
Autorisation : Membre
Nb de messages : 118
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mer 23 Nov 2011, 18:03
J'ajoute que ça :
Code
:if A>B
:Then
:Disp "C EST PLUS!
:C+1->C
:Else //On supprime une boucle inutile ...
:Disp "C EST MOINS! //Oh d'ailleurs tu as un apostrophe dans le menu angle
:C+1->C
:End
Pourrait être remplacé par
Code
:if A>B
:Disp "C EST PLUS!
:if B<A
:Disp "C EST MOINS! //Une seule action derrière le If, pas besoin de Then
:C+1->C //Sortir l'incrémentation du C permet d'effacer une ligne!
----------------------
Citer
Le temps est une variable dans une boucle infinie, qu'on ne cesse d'incrémenter.