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 abondants inférieurs à 50 [Débutant(e)]


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 14
    Par défaut Nombres abondants inférieurs à 50
    Bonjour,
    je trouve un peux de mal a résoudre un exercice en algorithme générale, il est demander d'écrire un algorithme qui permet d'afficher tous les nombres abondants inférieurs à 50. (un nombre abondants est un nombre entier naturel qui est strictement inférieur à la somme de ses diviseurs).

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bonjour,
    il y a deux approches :

    1/Tu les connais : mais je ne pense pas que ça soit l'exercice

    2/Tu les trouves : puisque tu cherches un nombre inférieur à 50, il te suffit de tester chaque nombre entre 1 et 50. Il te faudra donc procéder en deux étapes : premièrement écrire une fonction est_abondant(entier) qui retournera vrai ou faux ; tu pourra ensuite l'appliquer à tous les entiers inférieur à 50 et afficher ce nombre s'il est abondant.

    Cdlt,

  3. #3
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 14
    Par défaut
    voila ce que j'ai fais
    variables i,nbr,s: entier
    d:booléen
    Debut
    d= faux
    s= 0
    pour nbr=1à 49
    pour i= 1à nbr
    si nbr % i = 0 alors
    Ecrire i
    s= s+i
    fin si
    fin pour
    si nbr< s alors
    d= vrai
    sinon
    d=faux

  4. #4
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bon, je n'ai pas lu ce que tu as fait. Mais si tu prends le temps de nommer tes variables avec des noms intelligibles et que tu mettais tout ça entre balises [CODE] (le bouton # du formulaire d'édition de message), je te donnerai mon avis.

    Cdlt,

  5. #5
    Membre actif
    Inscrit en
    Novembre 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 14
    Par défaut
    voila ce que j'ai fais
    variables i,nombre,SOMME: entier
    TEST:booléen
    Debut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    TEST= faux
    SOMME= 0
    pour nombre=1à 49
    pour i= 1à nombre
    si nomber % i = 0 alors
    Ecrire i
    SOMME= SOMME+i
    fin si
    fin pour
    si nombre< s alors
    TEST= vrai
    sinon
    TEST=faux

  6. #6
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Bon, l'idée est là mais c'est pas encore parfait. Il est important de mieux nommer ses variables. i tu pourrais l'appeler diviseur par exemple. et TEST et SOMME n'ont aucune raison d'être en majuscule.

    Ensuite il est important de diviser le travail : si ta syntaxe te le permet, fais des sous routines ou des fonctions.

    Dernier point, il y a mieux comme méthode pour extraire les diviseurs d'un nombre que de simplement tester tous les nombres inférieurs.

    Bonne continuation.

    Edit : il y a aussi un soucis d'initialisation. Tel quel, ton algorithme ne fonctionnera pas car tu ne réinitialise pas SOMME à zéro au début d'un test d'un nombre (seulement une seule fois au début).

Discussions similaires

  1. Arrondir un nombre à sa valeur supérieure ou inférieure
    Par philben dans le forum Contribuez
    Réponses: 5
    Dernier message: 08/02/2013, 13h35
  2. [E-03] trouver les valeurs inférieur et supérieur d'un nombre
    Par kristoch91 dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 30/10/2008, 16h28
  3. Ajout de 0 si nombre inférieur à X chiffres
    Par gailup dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/08/2008, 13h16
  4. Réponses: 6
    Dernier message: 21/06/2007, 17h13
  5. [pl/sql]dizaine inférieure et supérieure d'un nombre
    Par Fleur-Anne.Blain dans le forum Oracle
    Réponses: 8
    Dernier message: 18/08/2006, 15h49

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