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

Algorithmes et structures de données Discussion :

Nombres pairs ou impairs


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 31
    Points : 22
    Points
    22
    Par défaut Nombres pairs ou impairs
    salut à tous

    ecrire un algorithme qui affiche les nombres paire et impaire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var:
    nombre,n : Entier
    Debut
        ecrire "un nombre"
        lire nombre
        si nombre=2*n alors ecrire"c'est un nombre paire"
        sinon si nombre =2*(n+1) alors ecrire "c'est un nombre impaire"
        fin si
    fin
    ????

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Heu... Outre le fait que la variable "n" n'est pas initialisée, ce code correspondrait plutot à l'énoncé "écrire un algorithme qui affiche si un nombre donné est pair et impair."
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 130
    Points : 80
    Points
    80
    Par défaut
    donc il suffit de rajouter une boucle qui parcours la valeur de 'n' et vérifier que ce n est divisible par 2

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par amateurc Voir le message
    donc il suffit de rajouter une boucle qui parcours la valeur de 'n' et vérifier que ce n est divisible par 2
    plus simple : il suffit d'initialiser "n" avec "Partie Entiere de (nombre/2)".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    lire nombre
    n <-- (nombre/2)  // division entière
    si nombre=2*n alors ecrire"c'est un nombre paire"
    ...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Points : 120
    Points
    120
    Par défaut
    encore plus simple mais plus lent niveau execution, en utilisant le modulo (qui fait à peu prés la même chose que la solution précedente )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     si nombre % 2 = 0 alors nombre paire sinon nombre impaire
    on peut aussi faire un test sur le premier bit de poid faible ( c'est la methode la plus rapide niveau execution).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ( nombre & 1 == 0 ) return paire; else return impaire;

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Pas besoin de "dérouler" un algorithme.
    Il suffit d'un tableau de 2 chaînes de caractères puis d'afficher à l'aide de Tableau[ n & 1] !

    A plus !

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Il y a aussi le grand classique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    parite(n)
    debut
       si n = 0 alors 
         ecrire n pair
       sinon si n= 1 alors 
          ecrire n impair
       sinon
         parite(n - 2)
       fin si
    fin
    J
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Points : 120
    Points
    120
    Par défaut
    NE FAITES PAS CA CHEZ VOUS

    :p

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Citation Envoyé par lcfseth Voir le message
    NE FAITES PAS CA CHEZ VOUS

    :p
    Ah bon
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 160
    Points
    53 160
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Ah bon
    N'y-a-t-il pas un léger soucis dans le cas d'entiers relatifs ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Parce que tu crois que pour les entiers positifs c'est déjà efficace ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    BONJOUR

    Pour savoir si un nombre paire ou impaire,
    il faut diviser ce nombre sur 2 et après utilise la fonction décimal pour savoir si décimal(nombre/2)=0 ou non... (biensur si égale à 0 alors paire si non alors impaire ... )
    ...

  13. #13
    Membre régulier
    Inscrit en
    Septembre 2007
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 114
    Points : 120
    Points
    120
    Par défaut
    attention, certaine personne pourrait vous prendre au mot

  14. #14
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Le classique pour introduire la récursion mutuelle :
    Code Haskell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    odd, even :: Int -> Bool
    odd 0 = False
    odd n = even $ n - signum n
     
    even 0 = True
    even n = odd $ n - signum n
    Disclaimer : L'efficacité de cet algorithme n'engage en rien la responsabilité de son auteur !

    --
    Jedaï

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    467
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 467
    Points : 681
    Points
    681
    Par défaut
    Il y a des grands malades ici !

  16. #16
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Bonjour à tous.
    ecrire un algorithme qui
    Cette discussion montre bien l'inconvénient qu'il y a à vouloir "écrire un algorithme" plutôt que de passer directement au langage de programmation avec lequel on travaille. Tout est alors beaucoup plus simple. Ainsi, en Fortran:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          If (Mod(x,2).Eq.0) Then
            Write (*,*) 'Le nombre est pair'
          Else
            Write (*,*) 'Le nombre est impair'
          End If
    et dans Matlab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if rem(x,2)==0
      disp('Le nombre est pair')
    else
      disp('Le nombre est impair')
    end
    sous réserve peut-être de quelque erreur d'inattention.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/05/2009, 23h14
  2. [Turbo Pascal] Nombres pairs et impairs dans un tableau
    Par 159753 dans le forum Turbo Pascal
    Réponses: 16
    Dernier message: 18/03/2009, 17h48
  3. Nombre pair ou bien impair
    Par monoar dans le forum Ruby
    Réponses: 10
    Dernier message: 12/08/2007, 22h21
  4. [TP] Nombres pairs et impairs
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 04/05/2007, 18h32
  5. Réponses: 4
    Dernier message: 30/06/2002, 21h23

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