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

Pascal Discussion :

[Débutant] Fonction retournant un booléen


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut [Débutant] Fonction retournant un booléen
    Bonjour,

    Je débute en programmation Pascal et j'aurais besoin d'aide sur les booléens(boolean) :

    Voici un exercice d'entraînement que je n'arrive pas à résoudre :
    Ecrire une fonction (a,b,x:real):boolean qui détermine si x est dans un intervalle [a;b] : elle prendra la valeur true si x appartient à [a,b],false sinon.
    Tester dans un programme (on demande à l'utilisateur de saisir a,b, on vérifie a<=b si ce n'est pas le cas on redemande la saisie jusqu'à ce qu'elle soit correcte).
    Pourriez-vous maider à établir ce programme svp

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    Voilà, j'ai réussi à une erreur près : le logiciel me met :"Fatal : syntax error ,; expected but ELSE found"
    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
    26
    program ex4a;
    uses console; {$R+}
     
    function point(a,b,x:real):boolean;
    begin
    if (a<x) and (x<b) then point := true
                       else point := false
    end;
     
    var x,a,b :real;
     
    begin
     writeln('entrer les bornes de l"interval a et b :');
     readln(a,b);
    while a>b do
          begin
          writeln('Saisie incorrecte car a>b, recommencez :');
          readln(a,b);
          end;
     writeln('Entrer un nombre réel x :');
     readln(x);
     if point (a,b,x) then writeln('Le réel ' , x:1:2 ,' est compris dans l"interval [',a:1:2, ';',b:1:2,']');
                      else writeln('le réel ' , x:1:2 ,' n"est pas compris dans l"interval [',a:1:2,';',b:1:2,']');
     
     
    end.
    Apparemment le else de l'avant-dernière ligne ne convient pas mais je ne comprends pas pourquoi. Quelqu'un pourrait-il m'aider svp ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut
    c'est bon j'ai réussi j'ai remplacé else par if not point (a,b,x) then et sa a marché a+++

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Woe,
    Citation Envoyé par sam343 Voir le message
    c'est bon j'ai réussi j'ai remplacé else par if not point (a,b,x) then et sa a marché a+++
    Ce n'est pas la seule modification, elle n'aurait pas suffit pour résoudre ton problème, qui vient en fait du point-virgule qui termine l'instruction juste avant le else.

  5. #5
    Membre Expert
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function IsInRange(const aValue, aMin, aMax: real): boolean;
    var R : boolean;
    begin
      R := (aValue > aMin) and (aValue < aMax);
      IsInRange := R;
    end;
    il pourrait être possible de faire egalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function IsInRange(const aValue, aMin, aMax: real): boolean;
    begin
      IsInRange := (aValue > aMin) and (aValue < aMax);
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 969
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 969
    Par défaut
    Coa,
    Citation Envoyé par Dr.Who Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function IsInRange(const aValue, aMin, aMax: real): boolean;
    var R : boolean;
    begin
      R := (aValue > aMin) and (aValue < aMax);
      IsInRange := R;
    end;
    il pourrait être possible de faire egalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function IsInRange(const aValue, aMin, aMax: real): boolean;
    begin
      IsInRange := (aValue > aMin) and (aValue < aMax);
    end;
    Pour que ce soit utilisable sans contrainte, j'aurais vérifié que

    aMax >= aMin

    sinon il faut penser à le faire avant chaque appel de la fonction.

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

Discussions similaires

  1. Créer une fonction qui retourne un booléen
    Par Dereck07 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/02/2008, 23h22
  2. Fonction qui retourne un booléen
    Par racoboss dans le forum Langage
    Réponses: 16
    Dernier message: 08/01/2008, 08h01
  3. [JUnit] Comment tester une fonction qui retourne un booléen
    Par Raiden1234 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 15/12/2007, 19h29
  4. [SQL] Fonction retournant le booléen false qui se transforme en true!
    Par fayred dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/09/2007, 12h37
  5. [Débutant] Fonction qui retourne un objet (classe)
    Par in dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/08/2007, 09h32

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