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] Le programme s'arrête sans afficher de résultat


Sujet :

Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut [Débutant] Le programme s'arrête sans afficher de résultat
    Bonjour a tous ,
    Voila je debute dans le Pascal et il se trouve que j'ai une erreur dans mon code que je ne comprend pas ! Mon programe s'arrete apres que j'ai entrer les deux chiffres a additionner alors qu'il devrait afficher le résultat !
    Voici le 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
    20
    21
    22
    23
    24
    program CALCUL ;
     var N1, N2, CHOIX, RESULT : integer ;
     var N3, N4, RESUL : real ;
     
    Begin
     
     writeln('Bienvenue, dans la calculatrice de Jeremy !') ; writeln('') ;
     writeln('Voici les differentes methodes de calculs :') ;
     writeln('1. Addition') ;
     writeln('2. Soustraction') ;
     writeln('3. Multiplication') ;
     writeln('4. Division') ; writeln('') ;
     write('Veuillez choisir une methode de calcul : ') ; read(CHOIX) ;
     
    if CHOIX=1
    then
        begin
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N1) ;
        write('Veuillez entrer le second chiffre : ') ; read(N2) ;
        RESULT := N1 + N2 ;
        writeln('Le resultat de cette addition est :',RESULT) ;
        readln ;
        end ;
    End.
    J'espere que vous pourrez m'aider !
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Ps : c'est assez urgent je dois rendre la calculette parfaitement opérationnel demain a mon prof de MPI !

    Aidez-moi s'il vous plait !

  3. #3
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    déjà utilises readln() au lieu de read() (cf la FAQ pour voir la raison).

    Aussi, change le nom de ta variable result car je crois que c'est un mot-clef du langage (en tout cas en Delphi si j'ai bonne mémoire).

    Sinon je ne vois aucune erreur dans ce que tu as écrit.

  4. #4
    Responsable Pascal, Lazarus et Assembleur


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

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 8 056
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue !

    Si tu exécutes ton programme depuis une console, tu verras que le résultat s'affiche et que tu es dans le cas typique décrit dans la FAQ :
    http://pascal.developpez.com/faq/?pa...u-il-a-affiche

    La solution est donc : un ReadLn à la fin.

    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]

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Merci , pour toute vos reponses voici mon nouveau code il marche nikel sauf que maintenant je voudrais que des qu'une opération est fini le programme demande si l'utilisateur veut fermer le programme ou recommencer (reprendre le programme du debut ) ! J'ai aussi un lèger beg avec la division la fenetre se ferme toute seul une fois les deux valeurs entrées !
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    program CALCUL ;
     uses crt;
     var N1, N2, CHOIX, RESULT : integer ;
     var N3, N4, RESUL : real ;
     var Ch: Char;
     
    Begin
     
     writeln('=== Calculatrice ===') ; writeln('') ;
     writeln('Voici les differentes methodes de calculs :') ;
     writeln('1. Addition') ;
     writeln('2. Soustraction') ;
     writeln('3. Multiplication') ;
     writeln('4. Division') ; writeln('') ;
     write('Veuillez choisir une methode de calcul : ') ; read(CHOIX) ;
     
    if CHOIX=1
    then
        begin
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N1) ;
        write('Veuillez entrer le second chiffre : ') ; read(N2) ;
        RESULT := N1 + N2 ;
        writeln('') ; writeln('Le resultat de l''addition ',N1 ,' + ',N2 ,' = ', RESULT) ;
        Ch := ReadKey;
     
        end
    else
    if CHOIX=2
    then
        begin
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N1) ;
        write('Veuillez entrer le second chiffre : ') ; read(N2) ;
        RESULT := N1 - N2 ;
        writeln('') ; writeln('Le resultat de la soustraction ',N1 ,' - ',N2 ,' = ',RESULT) ;
        readln ;
        Ch := ReadKey;
     
        end
    else
    if CHOIX=3
    then
        begin
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N3) ;
        write('Veuillez entrer le second chiffre : ') ; read(N4) ;
        RESUL := N3*N4 ;
        writeln('') ; writeln('Le resultat de la multiplication est ',RESUL) ;
        readln ;
        Ch := ReadKey;
     
        end
    else
    if CHOIX=4
    then
        begin
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N1) ;
        write('Veuillez entrer le second chiffre : ') ; read(N2) ;
        RESUL := N3/N4 ;
        writeln('') ; writeln('Le resultat de la division est ',RESUL) ;
        readln ;
        Ch := ReadKey;
     
     
        end
    else
    if CHOIX>5
    then
        begin
        writeln('') ; write('Veuillez entrer un chiffre designant une methode de calcul ! ') ;
        readln ;
        Ch := ReadKey;
     
        end ;
    End.
    Merci d'avance

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Pour ta première question, utilise repeat ... until ou while.

    Pour ta seconde, regarde ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        writeln('') ; write('Veuillez entrer le premier chiffre : ') ; read(N1) ;
        write('Veuillez entrer le second chiffre : ') ; read(N2) ;
        RESUL := N3/N4 ;
    Tu lis N1 et N2 et tu essayes de traiter N3 et N4.
    Le copier/coller est dangereux en programmation, ça nous arrive à tous.

    Par contre, pour la division il faut faire un test (sur N4 ici) pour voir si tu ne divises pas par 0.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Par défaut
    Merci pour ton aide ! Peux-tu plus me décrire comment faire le repeat et le systeme du test pour savoir si on divise par 0 .

    Merci d'avance !

    PS: désolé je debute

Discussions similaires

  1. [PHP 5.2] Appeler un URL sans afficher son résultat
    Par narvaline dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2010, 10h16
  2. Réponses: 4
    Dernier message: 30/04/2008, 14h55
  3. Réponses: 2
    Dernier message: 04/06/2007, 10h39
  4. Réponses: 5
    Dernier message: 28/03/2007, 23h29
  5. Exécuter requête sans afficher le résultat
    Par picatchou dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/09/2006, 22h32

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