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 :

Condition pour empêcher une division par 0


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut Condition pour empêcher une division par 0
    Bonjour, voilà ce que j'ai fait :

    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
    program calcul ;
    var a, b , c , d , e , f : integer ;
    begin
    write('entrer a : ');
    readln(a) ;
    write('entrer b : ') ;
    readln(b) ;
    c := a + b;
    d := a - b;
    e := a * b;
    f := a div b;
    if (b<>0) then f := a div b ;
    if (b=0) then write( ' division impossible');
    writeln('a + b =  ', c );
    writeln('a - b = ', d );
    writeln('a * b = ', e );
    writeln('a / b = ', f );
    end.
    mon programe doit afficher la somme, la différence, le produit ainsi que le quotient. Mon probleme est que, lorsque b est égal à 0, l'ordi me met une erreur, donc pour cela j'aimerais savoir comment exprimer la condition qui, lorsque b = 0, ne fait pas la division mais affiche "opération impossible".

    Merci d'avance

  2. #2
    mat.M
    Invité(e)
    Par défaut
    if ( b<>0 ) then f:= a div b;

  3. #3
    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 308
    Points
    4 308
    Par défaut
    Citation Envoyé par mat.M
    if ( b<>0 ) then f:= a div b;
    Sauf qu'il faut le mettre à la place de f := a div b;

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

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    L'erreur arrive à la ligne f := a div b. Tu ne peux pas utiliser div si b vaut 0. Donc tu dois mettre ta condition AVANT de faire a div b.

    si au lieu de f := a div b tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( b<>0 ) then f:= a div b;
    dans le cas ou b vaut 0, tu n'as pas touché à f mais tu n'as pas fais de division par 0.

    Donc tu devras mettre aussi une condition à l'endrois ou tu affiches writeln('a / b = ', f ) quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( b<>0 ) then writeln('a / b = ', f ) else write( ' division impossible');
    Essaye donc ça, puis essaye de trouver plus simple si tu peux.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok , je vais essayer , si j'ai probleme je reviendrai ici

    merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    sa marche , c'etait bien la condition de depart qui etait fausse je vous remercie a une prochaine

  7. #7
    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 308
    Points
    4 308
    Par défaut
    La condition n'était pas faute, c'était l'ordre deslignes qui n'était pas bon
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/06/2009, 13h38
  2. [VBA-EXCEL]-condition pour ouvrir une msgbox
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2006, 21h51
  3. plantage avec une division par 0
    Par wauant dans le forum Windows Vista
    Réponses: 2
    Dernier message: 04/07/2006, 09h04
  4. Comment faire une division par 5 avec les decalages
    Par Zaion dans le forum Assembleur
    Réponses: 7
    Dernier message: 05/11/2004, 18h33
  5. probleme avec une division par zéro
    Par jcharleszoxi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2003, 19h14

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