IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Turbo Pascal Discussion :

Incrémentation du compteur dans une boucle for [TPW]


Sujet :

Turbo Pascal

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Incrémentation du compteur dans une boucle for
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    program s2;
    uses wincrt;
    var i,s:integer;
    begin
      for i:=0 to 10 do
        begin
          i:=i+1;
          s:=s+i;
          writeln('s',s);
        end;
    end.
    Quand je l'exécute, il continue à incrémenter jusqu'a -32... malgré qu'il soit supposé d'incrémenter de i=0 jusqu'au 10.
    Où est l'erreur svp ?

  2. #2
    Membre habitué Avatar de Modulpro
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2010
    Messages : 76
    Points : 175
    Points
    175
    Par défaut
    Bonsoir,

    Un petit tour dans les regles du forum vous permettra de voir que :
    - il faut éviter les titre du genre "aidez moi" ou "Help", qui ne donnent pas envie aux membres de répondre
    - la balise [ CODE] [ /CODE] (sans les espaces), accessible via le bouton # de l'éditeur, permet de mettre en forme votre code.
    De plus, pourquoi ne pas avoir posté dans le forum Turbo Pascal ?

    Pour votre probleme, il vient du fait que vous modifiez la variable compteur i à l'interrieur de votre boucle "for".
    La structure for i:=0 to 10 do incrémente automatiquement le compteur i à chaque tour.

    Il faut donc supprimer i:=i+1;de la boucle.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    { exercice : ecrire un programme en pascale qui calcule la somme des 10 premiers entiers naturels }


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
     
    program s2;
    uses wincrt;
    var i,s:integer;
    begin
     
      s:=0 ; { initialisation de la somme à 0 }
     
      for i:=1 to 10 do
        begin
     
        { Pour l'instruction "For" , l'incrémentation du compteur "i" est automatique , le pas  par défaut est  égal à 1 , donc pas besoin de ça " i:=i+1" }
     
          s:=s+i;
     
        end;
    writeln ( 's = ' , s) ; { l'istruction writeln doit etre en dehors de la boucle "for" si on cherche à afficher la somme finale }
     
    end.
     
     
     
    {Rq: on a pas besoin de " begin" et "end" sous l'instruction "for" si on a un seul traitement . }

    finalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    program s2;
    uses wincrt;
    var i,s:integer;
    begin
     
      s:=0;
     
      for i:=1 to 10 do
        begin
          s:=s+i;
        end;
     
        writeln('s = ',s);
    end.

  4. #4
    Membre éprouvé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Points : 917
    Points
    917
    Par défaut
    Avec Turbo pascal, le compilateur accepte la modification du conteur à l’intérieur
    de la boucle for, mais c'est TRES déconseillé. D'ailleurs, les nouveaux compilateur tel que Freepascal l'interdisent.
    [honte] Je l'ai déjà fais [/honte]

  5. #5
    Membre éclairé

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Points : 705
    Points
    705
    Par défaut
    question bête et solution donnée et même pas un petit

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 948
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 948
    Points : 5 662
    Points
    5 662
    Par défaut
    Goa,

    Il n'y a pas de question bête, le demandeur aura appris quelque chose (et quelques autres aussi ...)

    Et il est un fait que si TP et dérivés avaient interdit cette manipulation du compteur de boucle, pas mal de personnes n'auraient pas eu l'occasion de prendre cette très mauvaise habitude.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/03/2013, 19h07
  2. Incrémentation d'index dans une boucle for
    Par Invité dans le forum Langage
    Réponses: 12
    Dernier message: 15/02/2013, 15h51
  3. Compteur dans une boucle for
    Par Auteur dans le forum Windows
    Réponses: 1
    Dernier message: 08/07/2010, 01h55
  4. Compteur dans une boucle for
    Par lohot dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/03/2008, 12h19
  5. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo