Gamme TI-82
Partager sur Facebook Fil RSS Imprimer la page
Cacher les résultats

Résultat de la recherche



Poster un nouveau sujet Poster une réponse
For(
Auteur Message
Chocolat



Autorisation : Membre
Nb de messages : 74
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Sam 28 Mai 2011, 7:31   Citer 

A quoi sert le for dans les programmes, a t il plusieurs utilité ?

----------------------
.
.
.
.
.
.
.
 Adresse email Haut de page Bas de page 
 
tilo1996



Autorisation : Membre
Nb de messages : 129
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Sam 28 Mai 2011, 7:42   Citer 

For( est tres utile. Il permet de faire des boucles, comme While, sauf que cette boucle fait un nombre de tours parametrés.
Je m'explique;
Tout d'abord la syntaxe est la suivante

For(variable,depart,fin,incrementation
Si tu mets pas d'incrementation sa sera 1.

Un ptit code qui explique maintenant ^^


Code
For(F,1,100
Disp F
End
Instruction apres la boucle



Est l'equivalent de

Code
1->F
While F=!100
Disp F
F+1->F
End
Instruction apres la boucle



L'avantage de For(, c'est que tu a pas a definir la variable, vu que tu definis la valeur de depart directement

PS: While se traduit par "tant que (...) Faire" (en algorithmique c'est ça qu'on aurait ecrit. )

----------------------
http://tchat-tout82.webuda.com/
 Adresse email Haut de page Bas de page 
 
sandro
Avatar

Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 9:34   Citer 

ça à, je crois, aussi pour aventage d'être plus rapide qu'une boucle While avec une variable que l'on incrémente ou décrémente.Deplus, ça prend moins de mémoire.

On peut aussi s'en servir pour ralentir un programme:

Code
:For(A,1,N          //N peut soit être définit par calul si le  ralentissement est variable sinon on peu remplacer N par une valeur adaptée
:End




Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Sam 28 Mai 2011, 10:14   Citer 

Et bien entendu comme pour autre chose, tu n'est donc pas obliger d'indiquuer le pas, par défaut, et pas besoin de fermer la parenthèse en fin. N'oublies pas le End à la fin.
Remarques tu peut faire une boucle qui va dans l'autre sens:

Citer
:For(A,100,0,-1
:Disp A
:End


Ici par contre tu es obligé, il me semble bien, d'indiquer le pas, qui sera moins 1 : pour reculer de un en un. Voilà. =)

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro
Avatar

Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 11:01   Citer 

Si on a
Code
:For(A,D,F
:...
:End


avec D>F alors la boucle est totalement ignorée (la condition d'execution d'un for estant que (ici) A n'a pas déppassé F

Si on rajoute un pas négatif, Alors D doit être supérieur à F pour que la boucle soit executée au moins une fois*

si on a:
Code
]:For(A,D,F,I
:...
:End


pour que la boucle soit executée il faut que si I<0 D+I>F; si I>0 D+I<F; si I=0 on optient un "ERR:INCREMENTe

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 : 74
Inscrit le : Mar 24 Mai 2011, 19:08
Posté le : Sam 28 Mai 2011, 12:54   Citer 

D'aaacord for sert par exemple a faire un chronometre

----------------------
.
.
.
.
.
.
.
 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Sam 28 Mai 2011, 12:57   Citer 

Par exemple, mais c'est impossible, enfin', la rapidité dce ta boucle dépends par exemple de la mémoire disponible, donc si tu fais un chrono, tu compares ave un vrai, tu verra, l'écart se creuse vite, on ne peut pas gérer le temps sur 82 82stas, etc...

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 28 Mai 2011, 13:08   Citer 


Citer : tilo1996
[For est l'équivalent de]

1->F
While F=!100
Disp F
F+1->F
End
Instruction apres la boucle

Le test dans la boucle est F inférieur ou égal à 100
F<=100


N'oubliez pas que vous pouvez employer des décimales à l'occasion.


( Il y avais un article et le manuel qui l'expliquaient, mais avec moins d'exemples. Sans compter les nombreux sujets d'aide. )


PS : Vous m'avez doublé cette fois ! winkle.gif

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Sangohan38



Autorisation : Membre
Nb de messages : 3391
Inscrit le : Sam 31 Déc 2005, 19:48
Posté le : Sam 28 Mai 2011, 13:34   Citer 

Le symbole [différent de] est valable dans ce cas car on initialise F par 1 et on l'incrémente de 1 donc il est inférieur à 100 et par conséquent différent de 100.

Sangohan38

----------------------
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 28 Mai 2011, 14:16   Citer 

NON car la boucle For est encore executée pour A=100 contrairement à ce While.
for: s'arrête après 100
while: s'arrête après 99.

Après un an passé, nous ne sommes toujours pas d'accord sur les détails du For...

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
sandro
Avatar

Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 15:50   Citer 


Code
:For(A,1,100
:Disp A
:End


Donne 100 comme dernière valeur

Mais
Code
:For(A,1,99.999999...  //j'ai remplis 7 lignes avec des 9
:Disp A
:End


Donne 99 comme dernière valeur


Code
:For(A,1,100-Ex
:Disp A
:End


Donne 99 si x inférieur ou égal à 12, sinon 100


CONCLUSION:
For agit tant que la variable incrémentée est inférieure ou égal à fin (supérieure ou égale si l'incrément est négatif) mais la fonction n'arrondit qu'en cas de calcul comme fin (pas si on entre un nombre)


Sandro
PS: ces tests ont été fait avec VTI avec une rom de TI 83

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 28 Mai 2011, 16:12   Citer 

Ton "100-E-x" place en exergue ce que j'ai démontré concernant la précision de la calculatrice. bigmouth.gif
C'est ça la recherche : plusieurs personnes trouvent la même chose séparément.

Tes tests sont justes mais la conclusion est inexacte.
Le For effectue un incrément à chaque fin de boucle puis effectue le test "si A>100 alors quitter".
Les arrondits de ces valeurs ne sont pas réservés au For.

EDIT : Le For effectue des arrondis différents de ceux constatés habituellement.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
sandro
Avatar

Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 16:29   Citer 

Alors pourquoi quand je met 112 "9" après la virgule la TI m'affiche 99 comme dernier résultat alors que quand je met 100-e-50 ou 100 j'obtiens 100?

Peut être que si on entre un nombre réel comme fin, l'arrondit est fait de manière à s'adapter à l'incrément:
-si I=0.5, arrondit au demi inférieur de "fin"
-si I=1 , aroondit à l'entier inférieur de "fin"
-si I=-0.5 , arrondit au demi iférieur de "fin" !!!
(ces trois résultats ont en tout cas été réalisés sur ma TI82stats.fr

peut-être que la variable fin est toujour arrondie à l'inférieur jusqu'a atteindre une valeur de type début+n*incrément (n appartenant à N)

Sandro
PS: si ça ce confirme, il faudrait aussi tester pour début

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 28 Mai 2011, 17:40   Citer 

Je viens de remarquer ceci grâce à toi. Merci !

Je l'ai observé avec mon programme VALSTR qui emploie les fonctions Prompt, iPart et fPart. (toujours des troncatures)
J'améliorerai mon article avec un développement.

======

Pour un nombre qui EXCEDE 14 chiffres significatifs :

0.99999999999999999999
Si le nombre est saisi sous cette forme, la valeur est tronquée après la 14ème décimale.
= 0.99999999999999
Testé comme =1

1-(E-20)
Sous cette forme, la valeur d'abord calculée puis arrondie !
= 1
Testé comme =1

Dès qu'on emploie une soustraction, il y a des arrondits bizarres.
La multiplication ne pose pas de problème.


======

CONCLUSION : (EDITE)

Même cela ne suffit pas à expiquer ce que fait le For.
Il devrait y avoir un arrondit de test dès 100-10^-9 mais le For ne réagit qu'à partir de 100-10^-13.

----------------------
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)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
sandro
Avatar

Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Sam 28 Mai 2011, 17:46   Citer 

c'est vrai que c'est plus logique de tronquer que d'arrondir quand on réfléchit au fonctionnement en interne d'une calculatrice

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2016 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink
 

Site hébergé par Free Page sous licence creative commons Page validée par le W3C (XHTML 1.0 Transitional) Feuille de style validée par le W3C Flux RSS 2.0 valide Page étiquetée par l'ICRA Page testée par Ocawa