La boucle for

Eliiott -  
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, svp je veux traduire la phrase de l'algorithme suivante en langage c
la phrase c'est : " pour i de 1 a 10 pas 2 "
merci d'avance
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

C'est quoi qui te pose problème ?
La syntaxe : for (initialisation; condition; incrémentation)
2
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
J'aurai plutôt dit :
for(instruction préliminaire au bloc; condition à remplir pour rester dans le bloc; instruction à effectuer avant le bloc suivant)
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
Effectivement.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020 > Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention  
 
"instruction à effectuer avant le bloc suivant", serait plutôt "instruction à effectuer après le bloc" parce que cette instruction sera effectuée même s'il n'y a pas de bloc suivant...
on pourrait dire aussi "instruction à effectuer avant de tester la condition"
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
J'vais ajouter mon grain de sel...

Je préfère :
 "instruction à effectuer après le bloc"
plutôt que :
 "instruction à effectuer avant de tester la condition".
En effet, lors de la première entrée dans la boucle, la troisième partie du 'for' n'est pas exécutée bien que la deuxième le soit.
Bonne réflexion.
0
Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   131
 
for(i = 1; i < 10 ; i + 2)
{
// ton programme
}

Voila :)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Pour info : ton code n'est pas correct...
0
Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   131
 
autant pour moi , j'ai oublié un =
for(i = 1; i < 10 ; i += 2)
{
}
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
J'aurais même dit que tu en as oublié deux ! Même si ça ne changera rien en pratique...

for(i=1; i <=10 ; i+=2) 
{
}
0
Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   131
 
ca change que si tu veux le faire aller jusqu'a 11! mais en general je veux toujours que i soit inferieur strict donc je met jamais le = c'est pour ca :)
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Non, la question était " pour i de 1 a 10 pas 2 ".
Si on oublie le "pas 2" un instant, et qu'on le remplace par "pas 1", mettre i<10, itérera jusqu'à 9, mais le 10 ne sera pas pris en compte. Pour avoir 10 il faut mettre i<=10, et en aucun cas ça ne fera 11.
Après le fait qu'on commence à 1 en allant de 2 en 2 fait qu'on ne tombera jamais sur 10, mais l'écriture i<=10 reste correcte et dans tous les cas on atteindra pas 11 !
0
lotfizribi
 
for(1;10;2)
-5
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

c'est quel langage ça ? Sûrement pas du C.
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Du C ? Mais pourquoi pas !
Il n'y aura pas d'erreur à la compilation, peut-être quelques warnings ?
Mais je crains que le résultat ne soit pas celui escompté... à moins de vouloir fabriquer une boucle infinie!
Bonne continuation.
0