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 :

Calcul de valeur absolue


Sujet :

Pascal

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 9
    Points
    9
    Par défaut Calcul de valeur absolue
    Bonjour tout le monde, je suis nouveau sur le forum et je commence la programmation en Pascal...
    Je voudrais faire un simple programme qui calcule la valeur absolue.
    Voici le premier 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
    PROGRAM valeur_absolue;
     
    VAR a : INTEGER;
    CONST b = -1;
     
    BEGIN
      WRITELN('Entrez la valeur de a');
      READLN(a);
           IF a<0 THEN
               WRITELN('La valeur absolue de a=',a*b);
               READLN   (a*b);
            IF a>0 THEN
            WRITELN('La valeur absolue de',a);
                 READLN (a);
               IF a=0 THEN
                  WRITELN('La valeur absolue de',a);
              READLN   (a);
     
      WRITELN('valeur absolue')
    END.
    Le souci c'est que j'aimerais pouvoir entrer d'autres valeurs par la suite, mais je ne comprends pas ce que je dois faire...
    J'ai essayé en faisant ceci :
    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 valeur_absolue;
     
    VAR a : INTEGER;
    VAR c : INTEGER;
    CONST b = -1;
     
    BEGIN;
      WRITELN('Entrez la valeur de a');
      READLN(a);
           WHILE a<0 DO
            BEGIN
               WRITELN('La valeur absolue de a=',c);
               c:= a*b;
            END;
            WHILE a>0 DO
              BEGIN WRITELN('La valeur absolue de',a);
                 READLN (a);
              END;
             WHILE a=0 DO
               BEGIN
                  WRITELN('La valeur absolue de',a);
              READLN   (a);
               END;
      WRITELN('valeur absolue');
      READLN;
    END.
    Si quelqu'un peut m'aider ???

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    pourquoi utilises-tu trois boucles alors que tu veux boucler une seule fois ?

    il te manque une condition de sortie de boucle

    1) je demande un nombre
    2) j'affiche sa valeur absolue
    3) dans quelle condition ne boucle-je pas ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse, voilà ce que j'ai fait, mais je suis obligé d'employer le "0" pour quitter... Il n'y aurait pas une autre solution?

    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
    PROGRAM valeur_absolue;
     
    VAR a : INTEGER;
    VAR c : INTEGER;
    CONST b = -1;
     
    BEGIN
     
      WRITELN('Entrez la valeur de a');
      READLN(a);
        WHILE a<>0 DO
         BEGIN
           IF a<0 THEN
               WRITELN('La valeur absolue de a=', a*b);
               c:= a*b;
     
            IF a>0 THEN
                 WRITELN('La valeur absolue de a=',a);
                 READLN (a);
         END;
    END.
    c'est mieux??

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    oui c'est mieux

    à quoi sert "c" ?

    attention à l'indentation, il n'y a pas de raison pour que les lignes 15 et 19 soient alignées avec la ligne qui précède.

    pour avoir plusieurs instructions associées un IF il faut les englober dans une section BEGIN/END, ce qui n'est pas le cas ici.

    Note que Ctrl+C devrait interrompre le programme si tu veux conserver le 0, il n'y a alors plus de condition de sortie et tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WriteLn('Appyez sur Ctrl+C pour quitter le programme');
    while True do ..

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 9
    Points
    9
    Par défaut
    merci pour tes réponses rapides et claires

    le c c'est juste pour afficher le résultat de a*b car si je ne mets pas c:=a*b mais que a*b j'ai une erreur...

    c'est quoi l'indentation???

  6. #6
    Membre éprouvé
    Avatar de EpiTouille
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 372
    Points : 917
    Points
    917
    Par défaut
    L'indentation c'est le fait de décaler tes instructions pour quelle le soit plus claire.

    tu peux aller voir :
    http://www.developpez.net/forums/d10...mation-pascal/

    on y explique plein de technique pour rendre un code plus claire et certaines manière d'indenter.

    Je ne comprend pas non plus d'où vient le c. Parce que, tu lui donne une valeur, mais tu t'en serre pas après.

    Allez, bon courage !

  7. #7
    Membre du Club
    Homme Profil pro
    au
    Inscrit en
    Mars 2011
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Zélande

    Informations professionnelles :
    Activité : au
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2011
    Messages : 41
    Points : 52
    Points
    52
    Par défaut
    Vous pouvez aussi demander à l'utilisateur à la fin de Taper sur 1 pour continuer, taper sur 0 pour sortir

    voilà c'est mieux comme ça, à vous devez mettre deux boucle, une pour que l'utilisateur sois obligé de taper seulement 1 ou 0, et l'autre boucle pour répéter le programme si l'utilisateur tape 1.

    Merci à vous.

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

Discussions similaires

  1. [2008R2] Mesure calculée utilisant des valeurs absolues
    Par cpdump dans le forum SSAS
    Réponses: 3
    Dernier message: 14/12/2011, 19h17
  2. Calcul de Valeur Absolue
    Par robmayol dans le forum Mathématiques
    Réponses: 3
    Dernier message: 21/10/2009, 11h34
  3. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 12/02/2007, 00h20
  4. [XSLT] calcul d'une valeur absolue
    Par FlyByck dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/01/2007, 15h01
  5. [FLASH MX] Valeur absolue
    Par Toutouffe dans le forum Flash
    Réponses: 2
    Dernier message: 24/01/2005, 01h35

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