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 :

Fin de programme dans une procédure


Sujet :

Langage Pascal

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Points : 144
    Points
    144
    Par défaut Fin de programme dans une procédure
    Bonjour,

    je souhaite que la fin d'une procédure mette fin au programme.
    Y a-t-il un équivalent de Application.terminate en Delphi ?
    Ou un autre moyen ?

    Merci.

  2. #2
    Membre averti Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Points : 358
    Points
    358
    Par défaut
    oui il y a halt(1); amuse toi bien
    6*8 =42

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Points : 144
    Points
    144
    Par défaut
    merci ca marche nickel

  4. #4
    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
    Attention !

    Halt(1); fait envoyer au programme une valeur de retour égale à 1, signalant en général une erreur d'exécution.
    Il est donc possible que certains OS précise que le programmae s'est terminé sur une erreur, alors que ce n'est pas le cas.

    Pour éviter ce genre de désagrément, on peut renvoyer une code d'erreur égal à 0, Halt(0);, ou, plus simplement, omettre le code d'erreur dans l'appel, comme ça : Halt;

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

    Pour me joindre (aucune question technique, merci)

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    cool !!
    Je ne savais même pas qu'on pouvais simuler une érreur avec Halt (1) en pascal !!! Je connaissais Halt, mais pas qu'on pouvais mettre des trucs entre parentéses !!!!!

    Comme quoi, on en apprends tout les jours !!!

    @++ Mathieu
    Chaque jour, l'homme crée des choses plus grandes, meilleures et sûres, et chaque jour, la nature crée des idiots plus performants. Pour l'instant, je pense que la nature gagne.

  6. #6
    ALT
    ALT est déconnecté
    Membre émérite
    Avatar de ALT
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2002
    Messages
    1 234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 234
    Points : 2 338
    Points
    2 338
    Par défaut Terminer un programme
    Bonjour

    Je me permets une remarque de "génie logiciel", comme on dit.
    Un programme ou une proc. doit avoir UNE entrée (un début. c'est toujours vrai, à moins d'utiliser des instructions du style goto) & UNE sortie (une fin.) Terminer un programme en cours de procédure peut amener des résultats pas toujours prévisibles. De plus, ça complique le débogage. Ensuite, ça ne facilite pas toujours (rarement ?) la conception de la chose. Enfin, quand on doit faire évoluer le code, on peut se demander longtemps pourquoi le programme s'est terminé & comment...

    Donc, les exit & équivalents sont à éviter, autant que faire se peut (il paraît qu'il est des cas où on ne peut les éviter. Personnellement, je n'en ai JAMAIS eu besoin).

    Cordialement
    « Un peuple qui est prêt à sacrifier un peu de liberté contre un peu de sécurité, ne mérite ni l'une, ni l'autre, et finira par perdre les deux. »
    Attribué indistinctement à :
    Thomas Jefferson
    Benjamin Franklin
    Albert Einstein !

  7. #7
    Membre averti Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Points : 358
    Points
    358
    Par défaut
    moi non plus d ailleur ... mais je ne suis pas un professionnel ..
    6*8 =42

  8. #8
    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
    Tout programme a un début et une fin... En effet, et seule la manière d'y arriver peut changer.

    Halt ne termine pas le programme comme Windows sait le faire ( ), mais le termine proprement, en vidant la pile, et en appelant les procédures de sortie. Il n'y a donc strictement aucun risque à ce niveau là. Pas de résultats "imprévisibles" donc.

    Le fait de banir Exit de sa programmation est, pardonnez l'expression, stupide ! Exit ne fait que sauter en fin de procédure, comme si tout le bloc qui le suivait jusqu'à la fin de la procédure était dans un bloc if...then...end; C'est donc une programmation tout à fait correcte, et qui permet au contraire de bien voir à quel endroit on désire terminer telle ou telle procédure.

    Autant renoncer à utiliser Halt peut se comprendre, que supprimer Exit de son vocabulaire me paraît pour le moins étrange.

    J'ajouterais qui plus est que le fait d'utiliser Halt permet de bien voir qu'il y a eu erreur d'exécution.

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

    Pour me joindre (aucune question technique, merci)

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Pourquoi tu ne mets pas un booléen (données-résultats comme on dit) et tu termines ta procedure si ce booléen est a vrai et pareil pour ton programme ce serait vachement plus correct.

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Le probleme, Sinclair, c que si tu utilise halt pour sortir de ta procedure
    ben... comment dire si tu fé des cours de prog,ton prof va t'arracher
    il va te dire que c comme utilisé un goto ou un exit,
    en bref ca fait un peu "tache" dans le programme puisque tu rend la main
    au systeme en plein programme.

    De plus la solution du "flag" de vinyl187 est bien plus "propre" tout en sachant que lorsqu'on arrive a la fin de la procedure, on retourne generalement dans la procedure principale.
    Bon courage.
    -=¤[PENGO]¤=- Keep Privacy Public

  11. #11
    Membre averti Avatar de charly
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 329
    Points : 358
    Points
    358
    Par défaut
    reste a savoir , si sa change vraimment quelque chose , ... non , quand on a des prof derriere nous tres stric dac , mais la , pour les projet perso , on peut tous de meme utiliser un goto de temps en temps non ?
    6*8 =42

  12. #12
    Membre habitué

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Points : 144
    Points
    144
    Par défaut
    mais ca revient pas a la procédure...
    en fait c'est un menu
    et qd on choisi le code F : ca quitte le programme... voila c tout

  13. #13
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    normalement pour ton menu tu appelles une procedure et tu as surement un repeat il suffit de mettre ton booléen a vrai lorsque l'utilisateur tape F.
    et tu finis ta boucle lorsque le booléen est vrai.C'est peut etre plus chiant mais ce sont des habitudes a prendre.

  14. #14
    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
    Tu veux du concret ? hé ben tiens :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    uses crt;
    var sortie:boolean;
    var ch:char;
     
    begin
    sortie:=false;
    while not sortie do
    begin
    ch:=readkey;
    if ch='F' then sortie:=true;
    end;
    end;
    Alors voilà pour le code. Ensuite une petite anecdote tirée de mon expérience personelle : ça fait environ deux mois que je suis en IUT informatique mais à peu près deux ans et demi que je programme tout seul dans mon coin, à faire des boucles repeat qui lit les touches au clavier ( entre autres car je fais pas que ça !!! ). J'ai donc ressenti un vrai choc quand mes profs m'ont demandé de ne plus utiliser d'exit, d'halt ou de goto ou de break ou de continue, et d'être rigoureux. Ca fait un véritable changement et c'est super dur de s'adapter et de perdre ses habitudes, mais maintenant j'ai vraiment la sensation de faire du code propre et qui tourne sans danger... Alors ça s'applique dans ce cas mais ça peut s'appliquer dans d'autres et je pense que c'est mieux de prendre de bonnes habitudes dès le début.
    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

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

Discussions similaires

  1. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  2. Saisie de données dans une procédure stockée
    Par Hastaroth dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/10/2004, 09h54
  3. Vérification du type de données dans une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/09/2004, 11h20
  4. Marquer une pause dans une procédure stockée
    Par PéPénet dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/11/2003, 10h42
  5. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31

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