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

Turbo Pascal Discussion :

[TP] Nombres pairs et impairs


Sujet :

Turbo Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut [TP] Nombres pairs et impairs
    j'ai un autre problème dans un autre énoncé:
    Ecrire un algo et sa traduction en pascal qui permet de:
    - afficher un message"entier pair" et calculer le carré de l'entier si l'entier donnée par l'utilisateur est paire.
    - Afficher un message"entier impaire" et calculer la racine carré de l'entier si l'entier donnée par l'utilisateur est impair

    Pascal ( mon travail)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Program p1;
    uses wincrt;
    var x:integer;
    begin
    writeln('donner la valeur de x');
    readln(x);
    if(x est pair) then begin
                        write('x est pair')
                        write('le carré de x est',sqr(x)');
                        end
                   else begin
                        write('x est impair');
                        write('le racine carré de x est',sqrt(x)');
                        end;
    l'erreur est affiché en if...' expression boleenne attendue'

    Pouvez vous m'aider??
    Ne dites pas que je suis idiote, il y a des prog que j'ai réussi quand meme

  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
    La condition x est pair n'est pas résolvable par le compilateur, du moins pas sous cetet forme. if attend comme condition une expression booléenne pouvant être déterminée. Pour déterminer si un nombre est pair ou impair, il suffit de tester si le reste de sa division euclidienne par 2 vaut 0 ou 1. Si 0, pair, si 1 impair. L'opérateur utilisé est le modulo % :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (x % 2 = 0) then {pair} else {impair}
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Citation Envoyé par wormful_sickfoot
    La condition x est pair n'est pas résolvable par le compilateur
    Quel dommage ! A quand un langage où il suffira d'écrire ce qu'on veut en français pour que l'ordinateur le fasse??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Demande un nombre à l'utilisateur, si ce nombre est pair dis lui, sinon dis lui qu'il ne l'est pas, ensuite prépare moi un café sans sucre


    Bon pour ne pas poster juste pour déconner je vais anticiper tes deux prochaines erreurs de compilation.
    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
     
    Program p1;
    uses wincrt;
    var x:integer;
    begin
      writeln('donner la valeur de x');
      readln(x);
      if (x % 2 = 0) then 
        begin
          write('x est pair') // mieux vaut utiliser writeln, l'affichage sera plus propre
          write('le carré de x est',sqr(x)'); // idem et aussi il faut supprimer le dernier "'" sinon erreur de compil
        end
      else begin
        write('x est impair'); // writeln
        write('le racine carré de x est',sqrt(x)'); // writeln et de nouveau le "'"
        end;
    end. // il manquait ce end, l'identation le montre clairement
    Développeur écolo, je suis pour le développement durable.

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Kal,

    En Pascal, on dispose de Odd qui renvoie true si la valeur est impaire.

    Mais comme je ne l'ai que très rarement utilisée, je ne sais plus si c'est standard ou si ça dépend du compilateur.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Expert confirmé
    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
    Points : 4 845
    Points
    4 845
    Par défaut
    Très franchement, il ne sert à rien de se lancer dans un langage sans en connaître les bases. Lis des cours et des tutoriaux, ne serait-ce que sur la syntaxe (begin, end, if, for, while, les ";", les ":=", les "=") etc.

    Je te conseille aussi d'utiliser un IDE (ça peut être un éditeur de texte) qui fasse de la coloration syntaxique pour Pascal, ça aide pas mal. Là par exemple tu vois au premier coup d'oeil que ton code ne va pas compiler.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Program p1;
    uses wincrt;
    var x:integer;
    begin
    writeln('donner la valeur de x');
    readln(x);
    if(x%2=0) then write('x est pair')
                        write('le carré de x est',sqr(x)');
                        end
                   else begin
                        write('x est impair');
                        write('le racine carré de x est',sqrt(x)');
                        end;
    Erreur de syntaxe elle est devenue , ou est elle l'erreur
    patientez avec moi, je m'excuse

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Mushroom7
    Quel dommage ! A quand un langage où il suffira d'écrire ce qu'on veut en français pour que l'ordinateur le fasse??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Demande un nombre à l'utilisateur, si ce nombre est pair dis lui, sinon dis lui qu'il ne l'est pas, ensuite prépare moi un café sans sucre


    Bon pour ne pas poster juste pour déconner je vais anticiper tes deux prochaines erreurs de compilation.
    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
     
    Program p1;
    uses wincrt;
    var x:integer;
    begin
      writeln('donner la valeur de x');
      readln(x);
      if (x % 2 = 0) then 
        begin
          write('x est pair') // mieux vaut utiliser writeln, l'affichage sera plus propre
          write('le carré de x est',sqr(x)'); // idem et aussi il faut supprimer le dernier "'" sinon erreur de compil
        end
      else begin
        write('x est impair'); // writeln
        write('le racine carré de x est',sqrt(x)'); // writeln et de nouveau le "'"
        end;
    end. // il manquait ce end, l'identation le montre clairement
    quelle est la difference entre writeln et write??? pourquoi de preference writeln??

    Et merci

  8. #8
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Write affiche une chaine de caractère et laisse le curseur à la fin de la chaine.
    Writeln affiche une chaine et passe le curseur à la ligne.

    Exemple concret:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    write('x est pair');
    write('le carré de x est ',sqr(x));
    si x vaut 2 cela affichera:
    x est pairle carré de x est 4
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    writeln('x est pair');
    writeln('le carré de x est ',sqr(x));
    si x vaut 2 cela affichera:
    x est pair
    le carré de x est 4
    Développeur écolo, je suis pour le développement durable.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Mushroom7
    Write affiche une chaine de caractère et laisse le curseur à la fin de la chaine.
    Writeln affiche une chaine et passe le curseur à la ligne.

    Exemple concret:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    write('x est pair');
    write('le carré de x est',sqr(x));
    si x vaut 2 cela affichera:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    writeln('x est pair');
    writeln('le carré de x est',sqr(x));
    si x vaut 2 cela affichera:
    Merci de me faire comprendre
    au code writeln('le carré de x est',sqr(x)); il parait une erreur signe " ' " attendu, mais pourquoi??? meme si je le remet c'est la meme erreur!

  10. #10
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Tu en as peut-être mis un en trop dans un writeln précédent.
    Il faudrait voir le code complet pour trouver l'erreur.
    Développeur écolo, je suis pour le développement durable.

  11. #11
    Expert confirmé
    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
    Points : 4 845
    Points
    4 845
    Par défaut
    Mushroom : Elle a déjà posté 2 fois le code où apparaissait l'erreur.

    C'est pour ça que j'avais dit dans un post antérieur que l'utilisation d'un IDE avec coloration syntaxique était bien pratique et que ça aidait à trouver les erreurs d'étourderie comme celle-là parce qu'elle sautaient aux yeux... Apparement j'avais tort.

    Bref, The future scientist regarde dans les code que tu as posté sur le forum et tu remarqueras que certains mots sont écris dans une couleur qu'ils ne devraient pas avoir... Après il ne te reste plus qu'à localiser la cause du problème (qui n'est pas très loin de la mauvaise coloration...).

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Merci
    je vais lire les cours aujoudrd'hui avec concentration, puisque le devoir d'informatique est demin.
    Et puis, je resoudrerai le problème toute seule avec votre aide biensur
    Bonne journée

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 72
    Points
    72
    Par défaut salut weld bladi
    bonjour
    le programme paire et inpaire et un programme facille dans le programme de 3eme math
    ce' soir je vais te donner une methode tres facile et fiable

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 72
    Points
    72
    Par défaut
    voici la premier méthode et je vai te envoyé une deuxiemme avec *odd*




    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 pairinp ;
    uses wincrt;
    var
    n:integer;
    a:real;
    begin
    writeln('donner un entier');
    readln(n);
    if (n mod 2) =0 then
    begin
    writeln('entier paire');
    a:= sqr(n);
    writeln('le carré est  ',a);
    end
    else
    begin
    writeln('entier impaire');
    a:=sqrt(n);
    writeln('le racine carré est ',a);
    end;
    end.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 72
    Points
    72
    Par défaut
    salut weld bladi voici la deuwieme méthode avecla fonction odd


    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 pairinp ;
    uses wincrt;
    var
    n:integer;
    a:real;
    begin
    writeln('donner un entier');
    readln(n);
    if odd(n) = true  then
     begin
    writeln('entier impaire');
    a:=sqrt(n);
    write('le racine carré est ',a:2:2);
    end
    else
    begin
    writeln('entier paire');
    a:= sqr(n);
    write('le carré est  ',a:2:2);
    end;
    end.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2007
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par gadalla
    voici la premier méthode et je vai te envoyé une deuxiemme avec *odd*




    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 pairinp ;
    uses wincrt;
    var
    n:integer;
    a:real;
    begin
    writeln('donner un entier');
    readln(n);
    if (n mod 2) =0 then
    begin
    writeln('entier paire');
    a:= sqr(n);
    writeln('le carré est  ',a);
    end
    else
    begin
    writeln('entier impaire');
    a:=sqrt(n);
    writeln('le racine carré est ',a);
    end;
    end.
    Merci, c'est une bonne methode

Discussions similaires

  1. Nombres pairs ou impairs
    Par leratx dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 25/11/2009, 14h35
  2. Réponses: 6
    Dernier message: 27/05/2009, 22h14
  3. [Turbo Pascal] Nombres pairs et impairs dans un tableau
    Par 159753 dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 18/03/2009, 16h48
  4. Nombre pair ou bien impair
    Par monoar dans le forum Ruby
    Réponses: 10
    Dernier message: 12/08/2007, 21h21
  5. Réponses: 4
    Dernier message: 30/06/2002, 20h23

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