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

Langage Pascal Discussion :

[LG] Evaluation paresseuse ?


Sujet :

Langage Pascal

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [LG] Evaluation paresseuse ?
    Bonjour
    Est-ce-que Pascal fait des évaluation paresseuses?
    Si non, comment aboutir à quelque chose d'équivalent sur une structure du genre:( si ca change quelque chose, j'utilise turbopascal 7.0)

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Evaluation paresseuse ? Quelle jolie expression... Mais c'est quoi ?

    Sois plus clair
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    C'est, quand on a une serie de test avec des AND, le fait de ne pas continuer les tests suivant une fois qu'un test est faux.

  4. #4
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    OUI

    avec OR, quand le 1er est vrai, il s'arrête
    avec AND, quand le 1er est faux, il s'arrête

    Contrairement à ADA qui implicitement parallélisent les tests

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci
    Mais j'ai maintenant un problème, je pensais que c'était juste un problème d'évaluation paresseuse ou non, mais si ce n'est pas le cas je ne comprend plus.
    C'est un peu hors-sujet par rapport à la question de départ, désolé.
    J'essaie de faire une procedure pour tester si un tableau de nombres est borné par un nombre donné. Voilà juste la boucle principale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     i:=1;
    while (i<=n) and (tab[i]>=m) do i:=i+1;
    resultat:=(i=n+1);
    tab est le tableau, n la longueur du tableau, m la borne que l'on teste (et resultat est un bouléen)
    Après des tests, je me suis rendu compte que la procédure marche si je met à la fin:
    c'est là que je ne comprend pas; si le tableau est effectivement borné par m, lorsque i=n, (i<=n) et (tab[i]>=m) sont vrai donc l'instruction i:=i+1 est executé, i prend la valeur n+1, le test (i<=n) devient faut et on sort de la boucle, on devrait donc avoir à la fin i=n+1...

  6. #6
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 938
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour !

    Il est possible que ce soit la condition (tab[i]>=m) qui arrête la boucle alors que la valeur de i égale n.
    Sinon, ça me semble impossible.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  7. #7
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    Peut-etre la dernière case de ton tableau est-elle vide...

  8. #8
    Membre du Club
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    Salut,

    Tu as peut-être trouvé la solution, étant donné que ça date un peu, mais pourrais-tu détailler ce que tu veux faire avec cette boucle ? Comment as-tu déclaré ton tableau ?

  9. #9
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Pour répondre plus en détail à la première question. Le Pascal ne parle pas d'évaluation booléenne "paresseuse", mais d'évaluation booléenne complète (ou pas).

    Il est possible de choisir le comportement du compilateur à l'aide d'une directive de compilation.
    Sous Turbo Pascal, il s'agit de $B, pour activer ou non l'évaluation complète. En mode {$B+}, les conditions sont évaluées en entier avant de passer à la suite, alors qu'en mode {$B-}, la condition s'arrête dès que le résultat peut être connu.

    @++
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

Discussions similaires

  1. [XL-2003] Evaluation paresseuse avec Or ?
    Par jedineofr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/07/2011, 10h46
  2. Evaluation paresseuse: fun ou lazy ?
    Par SpiceGuid dans le forum Caml
    Réponses: 16
    Dernier message: 06/06/2008, 21h43
  3. Evaluation d'un nom de fonction
    Par uaz dans le forum Général Python
    Réponses: 1
    Dernier message: 04/08/2004, 11h16
  4. Un outil pour evaluer les dépendances
    Par karbone dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/03/2004, 14h36
  5. Evaluation d’expression
    Par mobisky dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 09/09/2002, 11h56

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