Poster un nouveau sujet Poster une réponse
Aide à la programmation
Auteur Message
p4nzer
Invité
Posté le : Sam 19 Nov 2011, 14:34   Citer 

Bonjour,

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... happy.gif

Merci a ceux qui m’aideront, j’attends vos exercices winkle.gif

  Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 19 Nov 2011, 14:48   Citer 

Moi je te proposerais bien un petit classique qui n'est pas très dur (pour commencer, ne conaissant pas vraiment ton niveau crazy.gif ).
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 ? winkle.gif )

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Sam 19 Nov 2011, 15:35   Citer 

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 eyeonly.gif mais je pense que le prog est bon winkle.gif
Merci The K !

  Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Sam 19 Nov 2011, 15:44   Citer 

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 winkle.gif

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Sam 19 Nov 2011, 15:47   Citer 

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.

 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Lun 21 Nov 2011, 17:26   Citer 


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 crazy.gif ).
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 moodforlove.gif

  Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Lun 21 Nov 2011, 17:53   Citer 


Citer : p4nzer
:While A!=B


tu est sur du "!"?

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Lun 21 Nov 2011, 18:01   Citer 

"!=B" se traduit par "Différent de", j'ai oublié de le préciser désolé ^^

  Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Lun 21 Nov 2011, 18:11   Citer 

dans ce cas tu peut mettre =/= ou [different ou egale]

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 21 Nov 2011, 21:11   Citer 

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 winkle.gif

Allez, encore un essai ? winkle.gif

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Lun 21 Nov 2011, 22:02   Citer 

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,"                "



??? happy.gif

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 ?? clown.gif

  Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Lun 21 Nov 2011, 22:03   Citer 

Double post désolé, mais c** comme je suis j'ai oublié d'enlever le Lbl E au dessus crazy.gif


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,"                "



  Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Lun 21 Nov 2011, 22:43   Citer 

Ah navré ! Il ne marche toujours pas je crois, même sans le label winkle.gif
Allons cherche bien c'est une petite erreur très simple mais qui change tout winkle.gif


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 ... happy.gif

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Lun 21 Nov 2011, 23:05   Citer 

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 godgrace.gif )

Et pour la balle, je m'y met demain si j'ai le temps, mais je pense pas avoir trop de soucis happy.gif

  Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Mar 22 Nov 2011, 17:37   Citer 

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.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Mar 22 Nov 2011, 17:37   Citer 

Je propose de remplacer le "While A&#8800;B" par "While A=B" (qui se traduit par "tant que A n'est pas égale à B" non?)Ligne 9

Si ce n'est pas l'erreur alors je ne vois pas eyeonly.gif

  Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Mar 22 Nov 2011, 17:39   Citer 

tu veux une idée?

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
p4nzer
Invité
Posté le : Mar 22 Nov 2011, 17:44   Citer 

Peut-etre un indice oui, j'aimerais trouver l'erreur par moi même c'est comme ça qu'on apprend le mieux happy.gif

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 crazy.gif

  Haut de page Bas de page 
 
tapenad



Autorisation : Membre
Nb de messages : 197
Inscrit le : Jeu 17 Nov 2011, 13:20
Posté le : Mar 22 Nov 2011, 17:48   Citer 

il y a un else peu utile
un then sans end
( ce sont des suppositions,je n'ai pas testé)

----------------------
L’erreur est humaine, mais pour provoquer une vraie catastrophe, il faut un ordinateur.

je suis premier!!!

je m'aime.
 Adresse email Haut de page Bas de page 
 
p4nzer



Autorisation : Membre
Nb de messages : 3
Inscrit le : Mar 22 Nov 2011, 19:34
Posté le : Mar 22 Nov 2011, 19:37   Citer 

C'est bon je suis ré-inscrit tongue.gif

J'ai trouvé une erreur :
Code
:Input "NOMBRE : ",B
:While A!=B



Input et While devraient etre inversé non ? Sinon on ne revient jamais sur le input...

Code

:While A!=B
:Input "NOMBRE : ",B
:[suite...]


The K j'attends ta réponse, tu m'aide bien depuis le début, merci happy.gif

 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 118
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mar 22 Nov 2011, 22:57   Citer 

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.


Polymorph, 23/11/2011
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 23 Nov 2011, 13:59   Citer 

Voila trouvé winkle.gif

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 ! winkle.gif


Tapenade : jeu en graphique = graphismes très énervants. Faut vraiment le vouloir godgrace.gif déja que pour un morpion en graphique c'est ***** alors que c'est sensé être simple avec qqes lignes winkle.gif

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
snap



Autorisation : Membre
Nb de messages : 364
Inscrit le : Dim 13 Fév 2011, 14:17
Posté le : Mer 23 Nov 2011, 16:06   Citer 


Citer : The K

Code
:EffEcr
:Output(1,1,"          //Un espace suffit ;)




Juste pour dire que pas d'espace sa marche aussi bigmouth.gif

----------------------
Commence un monopoly non graphique et compte bien le finir!
Lycée de l'escaut Valenciennes happy.gif
Fan de reflets d'acide!
le meilleur jeu du monde
http://snap-le-terrible.minitroopers.fr
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 850
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 23 Nov 2011, 16:22   Citer 

Ouais mais ... c'est pour le principe ... tu vois ? hein ? ^^'

...

Bon ok t'as raison t'as raison minied.gif winkle.gif

----------------------
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 programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
Polymorph



Autorisation : Membre
Nb de messages : 118
Inscrit le : Dim 13 Nov 2011, 14:26
Posté le : Mer 23 Nov 2011, 18:03   Citer 

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.


Polymorph, 23/11/2011
 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