La boucle for

Eliiott -  
loupius Messages postés 789 Statut Membre -
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

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    C'est quoi qui te pose problème ?
    La syntaxe : for (initialisation; condition; incrémentation)
    2
    1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      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
      1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Effectivement.
        0
      2. KX Messages postés 19031 Statut Modérateur 3 020 > Char Snipeur Messages postés 10112 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
    2. loupius Messages postés 789 Statut Membre 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
  2. Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   132
     
    for(i = 1; i < 10 ; i + 2)
    {
    // ton programme
    }

    Voila :)
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Pour info : ton code n'est pas correct...
      0
    2. Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   132
       
      autant pour moi , j'ai oublié un =
      for(i = 1; i < 10 ; i += 2)
      {
      }
      0
    3. KX Messages postés 19031 Statut Modérateur 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
    4. Torpix Messages postés 510 Date d'inscription   Statut Membre Dernière intervention   132
       
      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
    5. KX Messages postés 19031 Statut Modérateur 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
  3. lotfizribi
     
    for(1;10;2)
    -5
    1. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Bonjour,

      c'est quel langage ça ? Sûrement pas du C.
      0
    2. loupius Messages postés 789 Statut Membre 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