Dans tous les cas, on sait que B = A+5.
Donc tu peux utiliser seulement A, en faisant:
Code
ZStandard
0->A
EffDessin
AxeNaff
Lbl L
Cercle(0,0,A
Cercle(0,0,A+5
1+A->A
Goto L
--------------------------
Généralement pour des petites boucles comme ça c'est judicieux d'utiliser... les boucles
Avec une boucle While:
Code
ZStandard
0->A
EffDessin
AxeNaff
While 1
Cercle(0,0,A
Cercle(0,0,A+5
1+A->A
End
--------------------------
Petite optimisation en plus: pour mettre une variable à 0, on peut utiliser DelVar (EffVar en .fr). L'avantage c'est que tu peux coller une autre instruction après, c'est un bogue de la calto (attention toutefois en l'exploitant: http://tout82.free.fr/forum/sujet.php?sujet=2691 )
Code
0->A
EffDessin
Devient:
Code
DelVar AEffDessin
--------------------------
Ensuite: Ton programme tourne indéfiniment, ça serait bien de pouvoir l'arrêter à l’appui sur une touche.
Pour cela on peut utiliser l'instruction codeTouche (getKey en anglais) qui renvoi le code de la dernière touche pressée, et s'il n'y a pas eut de touche pressée elle renvoi 0.
Code
ZStandard
DelVar AEffDessin
AxeNaff
Repeat codeTouche //Jusqu'à ce que codeTouche renvoit autre chose que 0, soit jusqu'à ce qu'une touche soit pressée
Cercle(0,0,A
Cercle(0,0,A+5
1+A->A
End
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Lun 10 Fév 2014, 21:20
Déjà je vais t'expliquer la fonction cercle:
Elle attend en paramètre 3 arguments, à savoir:
_L'absice du centre du cercle
_L'ordonnée du centre du cercle
_Le rayon du cercle
Donc:
Cercle(0,0,A
Tracera un cercle de centre (0;0) et de rayon A.
Et
Cercle(0,0,A+5
Tracera un cercle de centre (0;0) et de rayon A+5.
----------------------------------
En fait je ne suis pas sur de ce que tu voulais faire faire à ton programme...
Cercle(0,0,A
Cercle(0,0,A+0,5
Ceci n'a pas de sens, puisque la fonction Cercle n'attends pas de 5e argument.
Mais à la manière dont tu présente la chose, j'ai l'impression que tu considère A et B comme des points, plutot que comme des nombres. Or A et B ne représentent que des nombres.
Du coup si tu voulais faire des cercle de centre A, ça n'a pas de sens, puisque A a une seule valeur, et il faut 2 valeurs pour représenter un point (après peut-être que ce n'est pas ce que tu voulais, c'est juste l'impression que j'ai eut d'après ta notation). Dis clairement ce que tu cherchais à obtenir pour que je t'aide à le faire mieux.
-------------------------------------
Concernant les Boucles (While - Repeat) et les étiquettes (Goto/Lbl)
Pour permettre à une action de se répéter plusieurs fois tu as plusieurs alternatives: les boucles ou les étiquettes.
Chacune présente avantages et inconvénients.
_Les boucles:
.While
Code
While condition
//Instructions
End
Tant que condition est vraie, les instructions sont répétées.
Dès que condition est fausse, le programme reprends après le End.
Les instructions ne sont jamais exécutées si condition est fausse à l'entrée de la boucle.
.Repeat
Code
Repeat condition
//Instructions
End
Jusqu'à ce que la condition soit vraie, les instructions sont éxécutées.
La boucle est exécutée au moins une fois, même si condition est vrai à l'entrée de la boucle.
Pour infos:
Généralement, les boucles sont plus rapides, car elles sauvegardent l'entrée de la boucle: pas besoin de scanner le code pour revenir au début après avoir fait les instructions dans la boucle!
Néanmoins, ça peut ralentir d'autres éventuelles boucles/structures If, qui peuvent scanner le code à la recherche d'un End, et qui doivent donc prendre en compte les autres boucles/structures If qui attendent aussi un End, pour ne pas s'arrêter au mauvais End (donc dès qu'il faut scanner (dans le cas d'un If/then/end ou d'une boucle While qui n'est pas exécutée), ce n'est pas très rapide).
_Les étiquettes
Code
Lbl A
//Instructions
Goto A
Tu peux aussi coupler avec une condition pour obtenir une boucle conditionnelle, à la manière d'un Repeat:
Code
Lbl XX
//Instructions
If condition
Goto XX
XX étant 2 caractères alphanumériques (y compris théta) (lettres en majuscules bien sûr)
Tant que la condition est vraie, les instructions sont éxécutées.
La boucle est exécutée au moins une fois, même si condition est fausse à l'entrée de la boucle.
Pour infos:
Le scan du code peut être long si le Lbl A est placé en fin de prgm: lorsque l'instruction Goto XX est exécutée, le programme scan le code à partir du début jusqu'à trouver un retour à la ligne suivi d'un Lbl XX (plus d'infos ici: http://tout82.free.fr/forum/sujet.php?sujet=2691).
Par contre, si le Lbl est placé en début de programme, ça peut être avantageux, le scan étant simple, contrairement à celui des boucles quand elles en font.
Autorisation : Membre
Nb de messages : 11
Inscrit le : Ven 11 Oct 2013, 13:15
Posté le : Mar 11 Fév 2014, 12:38
re-bonjour,
Je voulais dire : 0.5 (j'ai oublié que c'était un point au lieu d'une virgule )
et en faite je veux faire un "programme" (si on peut dire cela) qui fait des cercle , de centre 0, le rayon commençant par 0 et qui avance de 0.5 a chaque fois jusqu'à ce que le cercle arrive a Y : 9,5 et à ce point il s'arrête (Désolé pour l'explication pas très nette )
Et merci pour les explications de différentes fonctions
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 11 Fév 2014, 17:26
Ah ok
Effectivement c'est de ma faute, j'avais mal lu j'ai cru que B valait 5 au départ, alors qu'en fait il vaut 0.5.
Du coup c'est bien:
Code
ZStandard
0->A
EffDessin
AxeNaff
Repeat condition
Cercle(0,0,A
Cercle(0,0,A+.5
1+A->A
End
Concernant la condition je te laisse chercher: si tu veux faire des cercles de rayons 0 à 9.5, il faudra s'arrêter lorsque A dépasse 9.
Ce que tu aurais pu faire, c'est au lieu d'ajouter 1 à la valeur de A à chaque tour de boucle, ajouter 0.5 directement: comme ça tu peux mettre une seule fois la fonction Cercle par tour de boucle, qui s’arrêtera donc lorsque A dépasse 9.5 cette fois.
Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 11 Fév 2014, 21:20
Non il ne faut pas les mettre: si tu les mets lorsque la calto va les lire, elle ne va pas comprendre (puisqu'elle n'attendait pas de End), et donc du coup elle va planter à coups sur...
Donc ne les mets pas
---------------------- 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)