[T. PASCAL]Debutant, la boulce FOR/DO

Debutant, la boulce FOR/DO [T. PASCAL] - Delphi/Pascal - Programmation

Marsh Posté le 28-10-2002 à 15:06:44    

Bonjour tout le monde,  
 
voila je commmence des etudes en info et on est entrain de programmer en Pascal...
 
Mais je comprend pas trop la boucle FOR/do...
D'après ce que je sais d'elle je ne doit pas declarer une variable car la boucle en initalise une MAIS celle-ci est effacer dès la fin de la boucle ??? (arreter moi si je dit des conneries)
 
Que renvoi cette boucle? (si la variable est effacer?)
a Quoi sert t'elle ?
si vs avez un chti explemple simple sous la main je suis preneur....
 
 
Merci d'avance
 
un student un peu paumer.
 
 
edit: je sais pas si c important mais on programme avec Turbo pascal 6.0


Message édité par wathou le 28-10-2002 à 15:09:05
Reply

Marsh Posté le 28-10-2002 à 15:06:44   

Reply

Marsh Posté le 28-10-2002 à 15:57:44    

:??:  
quand tu fais "for i := 0 to Bidule do", ça ne sera à rien d'assigner une valeur à i avant le for (genre initialiser i à 0) et tu ne doit pas essayer de récupérer la valeur de i après le end du for, à moins de le réassigner toi-même
donc:
 
i := 0;
for i := 0 to Bidule do
begin
  des_trucs;
end;
Writeln(i);
 
le i := 0 est inutile, et le Writeln est "dangereux" (résultat hasardeux)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-10-2002 à 16:58:05    

mais alors quelle est l'interet si le resultat est hasardeux ??

Reply

Marsh Posté le 28-10-2002 à 17:00:54    

wathou a écrit a écrit :

mais alors quelle est l'interet si le resultat est hasardeux ??




 
ben l'interet c d'effectuer un traitement en boucle  :heink:

Reply

Marsh Posté le 28-10-2002 à 17:15:58    

bhen un for est plus rapide qu'un while, mais en contrepartie tu ne peux pas récupérer la valeur de la variable en fin de boucle
y a un topic là dessus :
http://forum.hardware.fr/forum2.php3?post=27605&cat=10


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-10-2002 à 18:01:22    

La boucle "for ... to ... do" sert à répéter une suite d'instructions un nombre de fois connu à l'avance. De plus, à l'intérieur de la boucle, tu peux savoir "où tu en es" de ta boucle, grâce à l'indice de boucle.
 
Exemple : afficher tous les entiers entre 1 et 200 :

Code :
  1. for i := 1 to 200 do begin
  2.    WriteLn(i);
  3. end; { for }


Message édité par BifaceMcLeOD le 28-10-2002 à 18:01:31
Reply

Marsh Posté le 28-10-2002 à 18:06:42    

Mieux:
 

Code :
  1. for i := 1 to 200 do
  2.     WriteLn(i);


 
ou
 

Code :
  1. for i := 1 to 200 do
  2.   begin
  3.     WriteLn(i);
  4.   end;


 
 
 [:banzai]


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 28-10-2002 à 19:13:23    

ok merci ça je comprend mais ce que je comprend pas c'est quel est l'intéret de faire une boucle si on peut pas recuperer la valeur après ??
 
Je doit vraiment paraitre comme un merde non ?

Reply

Marsh Posté le 28-10-2002 à 19:22:29    

Bhen à priori t'as pas besoin de récupérer la valeur après puisque c'est toi qui lui dit jusqu'où il doit aller [:mlc]
imaginons que pour une raison inconnue tu veule quand même savoir où il s'est arrêté, bhen tu fais un while à la place d'un for.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 28-10-2002 à 19:33:31    

wathou a écrit a écrit :

ok merci ça je comprend mais ce que je comprend pas c'est quel est l'intéret de faire une boucle si on peut pas recuperer la valeur après ??
 
Je doit vraiment paraitre comme un merde non ?



Pour utiliser la valeur DANS la boucle.
L'autre possibilité, c'est que tu n'ais pas vraiment besoin de la variable, mais simplement d'exécuter un morceau de code un certains nombre de fois.

Reply

Marsh Posté le 28-10-2002 à 19:33:31   

Reply

Marsh Posté le 28-10-2002 à 19:48:50    


Non, vous comprenez pas, il veux faire une assignation  [:ddr555]  
 
Genre
 
for i:=0 to 155 do ;
 
pour faire i := 155;
 
 [:xp1700]


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed