Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
[Aide] For(, Output, Listes...
Chocolat le 27/09/2011 à 14:25
A quoi sert le For( ? Je commence la programmationPersalteas le 27/09/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.
Si le pas est 1 on est pas obligé de le préciser.
Exemple:
For(A,1,20,2
Disp A
Pause
Output(8,1,A
End
ou encore:
For(X,6A+2,-6,-1
Pxl-On(25,X+7
End
voilà...Chocolat le 27/09/2011 à 14:50
en gros le
ira de 2 en 2 jusqu'à 20 ?
Persalteas le 27/09/2011 à 14:53
jusqu'à 19 plus exactement car il commence à 1:
1,3,5,7,9,11,13,15,17,19.Chocolat le 27/09/2011 à 14:56
donc pour etre sur
Code
EffEcran
For(A,1,20
Disp"A
Goto 0
Il ira a 0 après être arrivé a 20 ? ou il sera juste affiché avec disp"A ?
Persalteas le 27/09/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.Chocolat le 27/09/2011 à 15:13
c'était juste pour comprendre
J'enchaine, Les listes servent à quoi ?
Persalteas le 27/09/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.
Chocolat le 28/09/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 outputPersalteas le 28/09/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.
Output, lui, fait passer le texte à la ligne.sandro le 28/09/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
SandroChocolat le 21/10/2011 à 13:43
Un question, Pour for, j'aimerais faire une ligne en continue. Je vais mieux m'expliquer en rentrant le code qui est surement faux.
Code
EffEcr
For(A,1,85
Texte(10,A,"-
End
1)Or voilà, j'aimerais que ce code dure tout le temps, et non pas s'arrêter des que le - arrive a la fin de l'écran.
2)Ensuite, j'aimerais que ce trait monte ou descende aléatoirement en laissant derrière lui les traces pour que la ligne ne soit pas discontinu.
Persalteas le 21/10/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.
Chocolat le 21/10/2011 à 14:13
persalteas a écrit :
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.
Comme ça :
Jeu ICopter sur Iphone Persalteas le 21/10/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
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.