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 :

Fonction de comparaison [TPW]


Sujet :

Turbo Pascal

  1. #1
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut Fonction de comparaison
    Salut à tous,

    j'ai un petit problème ; je suis en train d'ecrire un petit jeu en TPW et j'ai ecrit cette fonction.
    Il faut que la fonction retourne un True ? Je ne comprends pas le problème.
    Voici une capture d'écran :

    Nom : 2015-01-10_104502.png
Affichages : 398
Taille : 17,3 Ko

    Voici mon code :
    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
    program test;
     
    uses wincrt;
     
    function compare(valeur1, valeur2, valeur3 : string) : boolean;
    begin
      writeln(valeur1, valeur2, valeur3);
      if ((valeur1 <> '') and (valeur2 <> '')) and (valeur3 <> '') then
        begin
          if ((valeur1 = valeur2) and (valeur1 = valeur3)) and (valeur2 = valeur3) then
            compare := true;
        end
      else
        compare := false;
    end;
     
    begin
    writeln(compare('1', '1', '0'));
    end.
    merci d'avance !

  2. #2
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut
    résolu merci

  3. #3
    Membre éclairé

    Homme Profil pro
    Rédacteur technique (retraité)
    Inscrit en
    Octobre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 81
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Rédacteur technique (retraité)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 168
    Points : 807
    Points
    807
    Par défaut
    Bon, le problème est résolu mais, pour les autres visiteurs de la discussion, il eût été simpa de dire comment.

    En fait le résultat de la fonction est indéfini lorsque, bien que non-vides, on a une différence entre les trois paramètres.
    Il faudrai ajouter une branche ELSE au second IF.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function compare(valeur1, valeur2, valeur3 : string) : boolean;
    begin
      writeln(valeur1, valeur2, valeur3);
      if ((valeur1 <> '') and (valeur2 <> '')) and (valeur3 <> '') then
        begin
          if ((valeur1 = valeur2) and (valeur1 = valeur3)) and (valeur2 = valeur3) then
            compare := true   // les 3 valeurs sont égales
           else   // ELSE du second IF
    	compare := false;  // les valeurs (non vides) sont différentes
        end
      else   // ELSE du premier IF
        compare := false;  // ici, seulement si une ou plusieurs chaines vides
    end;
    Mais pourquoi faire simple quand, avec un minimum d'effort on peut faire compliqué!
    Pour les adeptes de la simplicité, ceci ferait la même chôse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function compare(valeur1, valeur2, valeur3 : string) : boolean;
    begin
      writeln(valeur1, valeur2, valeur3);
      compare := (valeur1=valeur2) AND (valeur1=valeur3) AND (Valeur1<>'');
    end;

  4. #4
    Membre régulier
    Avatar de mohamedAziz
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2014
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2014
    Messages : 42
    Points : 84
    Points
    84
    Billets dans le blog
    2
    Par défaut
    merci c'est sympa !
    la solution était tres simple c'est pour cela que je n'ai pas publier, un petite faute dans l'emplacement du block.
    https://github.com/mohamed-aziz/pasc.../tictactoe.pas ligne 54
    mais votre solution est cool, je n'ai pas beaucoup d'experience dans le domaine de la programmation, merci alors .
    essayer s'il vous plait d’améliorer mon code je suis sure que vous aller supprimer 200 ligne de code .

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

Discussions similaires

  1. [XL-2000] Fonction excel comparaison
    Par chouki60 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/12/2009, 15h13
  2. [BATCH] Fonctions de comparaison de chaînes?
    Par Jahprend dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 29/06/2008, 17h05
  3. "Sorting" d'un vecteur avec une fonction de comparaison
    Par C.R.E.A.M dans le forum SL & STL
    Réponses: 4
    Dernier message: 02/02/2008, 17h25
  4. Fonction de comparaison de chaînes
    Par Shugo78 dans le forum C
    Réponses: 2
    Dernier message: 11/11/2007, 16h02
  5. find() de std::set avec fonction de comparaison
    Par Biglo dans le forum SL & STL
    Réponses: 3
    Dernier message: 13/01/2006, 08h50

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