Poster un nouveau sujet Poster une réponse
[Aide] For(, Output, Listes...
Auteur Message
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mar 27 Sep 2011, 14:25   Citer 

A quoi sert le For( ? Je commence la programmation

 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 : Mar 27 Sep 2011, 14:48   Citer 

ç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à...

 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mar 27 Sep 2011, 14:50   Citer 

en gros le
Code
disp"A

ira de 2 en 2 jusqu'à 20 ?

 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 : Mar 27 Sep 2011, 14:53   Citer 

jusqu'à 19 plus exactement car il commence à 1:

1,3,5,7,9,11,13,15,17,19.

 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mar 27 Sep 2011, 14:56   Citer 

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 ?

 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 : Mar 27 Sep 2011, 15:08   Citer 

ç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.

 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mar 27 Sep 2011, 15:13   Citer 

c'était juste pour comprendre godgrace.gif
J'enchaine, Les listes servent à quoi ?

 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 : Mar 27 Sep 2011, 15:40   Citer 

C'est parti...

Euh, en cherchant tu devrait trouver plus de précisions.

Je te donne la base:

L1 est une liste, L1(crazy.gif 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.

 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Mer 28 Sep 2011, 10:04   Citer 

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

 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 : Mer 28 Sep 2011, 10:22   Citer 

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.

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 28 Sep 2011, 13:36   Citer 

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
 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Ven 21 Oct 2011, 13:43   Citer 

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.

 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 : Ven 21 Oct 2011, 14:05   Citer 

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.

 Adresse email Haut de page Bas de page 
 
Chocolat



Autorisation : Membre
Nb de messages : 68
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Ven 21 Oct 2011, 14:13   Citer 


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.

Comme ça : Jeu ICopter sur Iphone

 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 : Ven 21 Oct 2011, 14:53   Citer 

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



 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 9 requêtes