Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 27 Sep 2011, 14:48
ça sert a faire des boucles de longueur définie:
:For( variable , nombre de début , nombre de fin , pas )
:instruction
:End
La variable va prendre la valeur de début, éxécuter l'instruction, augmenter de la valeur du pas, re-éxécuter l'instruction, etcaetera jusqu'à ce qu'elle atteigne la valeur de fin.
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 27 Sep 2011, 15:08
ça dépend, tu n'as pas mis le End de fin de boucle.
Si tu le mets après le goto, il A ira jusqu'à 19 avant que le prog passe au Lbl 0.
Si tu le mets avant le goto, A ira jusqu'à 1 et le prog passera au Lbl 0. Mais tu vas te faire gronder par les programmateurs parce que c'est très moche et ça se fait pas de mettre un Goto dans une boucle.
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mar 27 Sep 2011, 15:40
C'est parti...
Euh, en cherchant tu devrait trouver plus de précisions.
Je te donne la base:
L1 est une liste, L1( le x ième numéro de la liste L1.
dim(L1) est le nombre de numéros dans la liste L1. (il faut le définir au début d'un programme pour éviter des bugs: exemple: 6 -> dim(L1) )
ensuite, tu utilise L1(1) comme une variable-lettre. Il y a des tas de fonctions qui servent à manipuler les listes, mais voilà la base. J'imagine que tu vas pas tarder à découvrir par toi même. Pose des questions sinon.
Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mer 28 Sep 2011, 10:04
Merci, je vais chercher les précisions sur internet. On peut enchainer ? La différence entre disp et output, si ce n'est qu'il faut préciser le placement de output
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 28 Sep 2011, 10:22
il y a pas grand chose d'autre, si ce n'est que tu peux écrire:
Disp "MON NUMERO EST",A,"ET JE SUIS CONTENT","QUE CE SOIT PAS",B,"!!"
alors que tu peux pas avec un output.
Sinon, si le texte de ton disp dépasse 16 charactères (Disp "12345678912345678912") , la TI te met des points de suspension au bout de la ligne et tu bouges le texte avec les fleches.
Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 28 Sep 2011, 13:36
Autres différences :
- avec output, tu précise l'emplacement de la 1er lettres (ligne,colone)
- Disp "repousse" le texte vers le haut si l'avant dernière ligne est occupé (n'affiche donc rien sur la dernière).
- Output est plus rapide
Sandro
---------------------- mort à l'inutile, place à la mémoire libre et aux programmes
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 21 Oct 2011, 14:05
Alors...
Comme ça, ça te va ?
(oui je sais, sandro va me dire que c'est pas optimisé, mais c'est pour être sur de me faire comprendre.)
Code
valeur Y de départ -> B
For(A,1,85
entAléat(0,1->C
If C=1 et B<62:B+1->B
If C=0 et B>1:B-1->B
Pxl-On(B,A
End
Si ça ne te plait pas, parce que tu voulais des "saccades" sur ta ligne:
Code
valeur départ -> B
For(A,1,17
entAléat(0,1->C
If C=1 et B<62:B+1->B
If C=0 et B>1:B-1->B
Ligne(5A,B,5A+4,B
End
Mieux ?
Pour le 1) , ce que tu demandes est assez difficile: il faudrait sauvegarder toutes les données dans une liste, et les retracer à chaque fois. mais c'est possible. Et ça va être lent.
Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Ven 21 Oct 2011, 14:13
Citer : persalteas
Code
valeur Y de départ -> B
For(A,1,85
entAléat(0,1->C
If C=1 et B<62:B+1->B
If C=0 et B>1:B-1->B
Pxl-On(B,A
End
Ce code est bien, mais j'aimerais que la ligne monte est descende aléatoirement, mais plus lentement. Je m'explique : La ligne est droite, elle monte ensuite de 3 pixels, elle reste encore droite, puis elle redescend de 2 puis de 4 sachant que les nombre sont aléatoire est monte ou descendre d'un maximum de 8 pixels. En gros je veut faire un copter Graphique entre deux ligne qui monte et descende aléatoirement.
Autorisation : Membre
Nb de messages : 2086
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 21 Oct 2011, 14:53
voilà:
Code
valeur départ -> B
B->F:0->E
For(A,1,17
entAléat(0,1->C
entaléat(1,8->D
If C=1 et B+D<62:B+D->B
If C=0 et B-D>1:B-D->B
Ligne(E,F,5A,B
Ligne(5A,B,5A+4,B
B->F:5A+4->E
End
En optimisé, ça donne:
Code
valeur départ ->B
B->F:0->E
For(A,1,17
randint(1,8->D
entaléat(0,1
If B+D<62 et Rép:B+D->B
If B-D et non(Rép:B-D->B
Ligne(E,F,5A,B
Ligne(5A,B,5A+4,B
B->F
5A+4->E
End