Partage
  • Partager sur Facebook
  • Partager sur Twitter

Mettre un plafond à une variable

    21 décembre 2006 à 20:45:34

    Bon, dsl de poser des questions toutes les 3 secondes, mais vous répondez si vite que je peux directement reprendre mon code et arriver à la question suivante. A partir de maintenant, j'upperai ce sujet pour la poser ^^

    Je voulais donc savoir si je peux fixer un plafond à une variable. Du genre:

    long Pv = 100;
                   Pv – 10;
                   Pv + 20; //ici‚ Pv ne devrait pas dépasser 100 malgré l'addition qui devrait l'amener à 110. 
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2006 à 20:59:01

      Citation : Nataniel

      Je voulais donc savoir si je peux fixer un plafond à une variable.


      Non. Ceci est possible en POO mais pas comme tu souhaiterais le faire (pas en C du moins). Un type int peut prendre n'importe quelle valeur suffisamment petites pour être stockées sur le nombre d'octets qui lui sont assignés. Tu vas devoir faire les tests à la main...

      Sinon, utilise int et non long !!!
      Et pour augmenter la valeur de PV, c'est l'opérateur += et non l'opérateur + qu'il faut employer. Ton code ne modifie en aucun cas la valeur de Pv.

      int PV = 100;
      PV += 10;

      if(PV > 100)
          PV = 100;
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2006 à 4:18:01

        Une autre méthode est de passer par une fonction qui prend l'adresse de ton entier, et qui fait les vérifications tout seul.

        void add_int(int* i‚ int val)
        {
            *i += val;
            if (*i > 100)
                *i = 100;
        }


        Là tu passes donc par une interface, tu feras toujours
        add(&i‚ 3);


        Garde à l'esprit que l'entier que tu manipules n'est pas à considérer comme un vrai entier, donc ce n'est pas raisonnable de le manipuler à la main, de rajouter tout le temps les tests (risques d'oublis...). Imagine toi créer une bibliothèque de manipulation de vecteurs en C, c'est pareil, il faudrait faire avec des fonctions auxiliaires comme ça, vu qu'il n'y a pas de surcharge d'opérateurs.

        Le problème, là, c'est que c'est peu évolutif. Donc il faudrait préciser la borne supérieure en paramètre à chaque fois. Mais ça aussi c'est un peu gênant, c'est dommage que le C ne permet pas de curryfication (c'est à dire créer une nouvelle fonction à partir d'une fonction, en fixant des paramètres de manière arbitraire, pour réduire le nombre d'arguments).
        • Partager sur Facebook
        • Partager sur Twitter

        Mettre un plafond à une variable

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown