+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut Variable dans un repeat

    Bonjour et merci d'avoir pris le temps de lire ma requête

    Voilà, j'aimerais trouver comment créer une variable qui s'enregistre dans une boucle, c'est-à-dire : voici mon code
    Code :
    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
    26
    27
    uses crt;
    var boisson:integer;
    //var canette:integer;
    var x:integer;
    var n1:integer;
    begin
    n1:=0;
    //canette:=100;
    Repeat
    writeln('Autre client?YES=1 NO=2');
    readln(x);
    IF (x=1)
    THEN
          writeln('Choississez votre boisson 1=coca');
          writeln('Choississez votre boisson 2=fanta');
          writeln('Choississez votre boisson 3=sprite');
          writeln('Choississez votre boisson 4=ice tea');
          writeln('Choississez votre boisson 5=aquarius');
          readln(boisson);
          if (boisson in [1,2,3,4])then writeln('Le prix est 1,00€')
          else if(boisson in [5])then writeln('le prix est 1;20€');
          if (boisson in [1,2,3,4]) then writeln(n1,'+',1,'=',n1+1)
          else if (boisson in [5]) then writeln(n1,'+',1.20,'=',n1+1,20);
     
    UNTIL (x=2);
    //Until (canette=0)
    end.
    Le problème étant que n1 revient toujours à 0 au lieu de s'enregistrer a chaque fois que je relance la boucle, est-il possible que n1 s'adapte et garde le résultat précédent à chaque fois ?
    Mon but étant que le prix de chaque canette soit comptabilisé et qu'à la fin, quand je mets x=2 pour ne plus avoir d'autre commande, ça m'affiche le prix total.

  2. #2
    Membre habitué Avatar de Modulpro
    Homme Profil pro Emilien
    Étudiant
    Inscrit en
    octobre 2010
    Messages
    73
    Détails du profil
    Informations personnelles :
    Nom : Homme Emilien
    Âge : 21
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2010
    Messages : 73
    Points : 145
    Points
    145

    Par défaut

    Bonjour,

    Plusieurs choses ne vont pas dans votre code :
    Tout d'abord, si le then n'est pas suivi d'un bloc begin/end, il ne porte que sur l'instruction suivante :

    Code :
    1
    2
    3
    4
    5
    6
    7
    IF (x=1)
    THEN
    writeln('Choississez votre boisson 1=coca'); //seul cette ligne est dans le if
     
    writeln('Choississez votre boisson 2=fanta'); //les instructions suivantes sont exécutées dans tous les cas
    writeln('Choississez votre boisson 3=sprite');
    ...
    Ensuite, la structure repeat...until n'est pas adaptée ici, il vaudrais mieux passer un while (condition) do...pour éviter d'avoir à re-tester la condition dans la boucle

    Enfin, votre problème de n1 nul vient du fait que écrire "n1+1" sur l'écran ne change pas la valeur de n1. Pour cela, il faut passer par deux instructions différentes :
    Code :
    1
    2
    3
     
    writeln(n1,'+',1,'=',n1+1);  //affiche la nouvelle valeur
    n1 := n1+1; //change la valeur de n1

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2012
    Messages : 4
    Points : 0
    Points
    0

    Par défaut

    un grand merci a toi

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •