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 :

Trouver le plus petit nombre


Sujet :

Algorithmes et structures de données

  1. #1
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Trouver le plus petit nombre
    Bonjour à tous, je dois rédiger le pseudo code de ce programme

    Rechercher et afficher les deux plus petits éléments d'un tableau

    donc je déclare un tableau de 6 éléments

    donc on va dire 1 2 3 4 5 6

    la condition pour trouver le plus petit est la suivante

    j'utilise une boucle pour parcourir le tableau et dans cette meme bouclie je place cette condition

    si iTableau[iI] > iMin alors

    iMin devient iTableau[iI]

    je ne vois pas comment je peux faire pour trouver le nombre le plus apres celui que j'ai déja trouvé, j'espere que vous avez compris car c'est pas tres facile d'expliquer cela un grand merci

    Mikeee

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Une fois que tu as le nombre le plus petit, tu reparcours ton tableau en obligeant le système à ne prendre que les valeurs supérieurs à ton minimum

    La premiere boucle est du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MIN<=65535 une taille ne tout cas suffisemment grande pour etre sur qu'une valeur inférieure sera trouvee
    TROUVE<=MIN
    POUR i= 0 à nombre d'éléments du tableau
        SI tab[i]<TROUVE
            MIN<=tab[i]
        FIN SI
    FIN POUR
    Par la suite, trouver les autres nombre prendra une forme similaire à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    LIMITE=TROUVE
    TROUVE<=MIN
    POUR i= 0 à nombre d'éléments du tableau
        SI tab[i]<TROUVE et tab[i]>LIMITE
            TROUVE<=tab[i]
        FIN SI
    FIN POUR
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    oui, mais que se passe t'il si les 2 plus petits ont la meme valeur ?? de plus, on doit pouvoir faire cela en une seule passe. du genre :

    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
     
    min1=min2=tableau[0]
     
    de i=1 a tailleTableau-1 faire
     
    si tableau[i] <= min1
      //on a trové plus petit que min1, donc l'ancienne valeur de min1 est le 
      //deuxieme plus petit nmbre trouvé pour l'instant
      min2=min1                  
      min1=tableau[i]            
    sinon
      si tableau[i] <=min2 //on sait deja que tableau[i]>min1
        min2=tableau[i]
      finSi
    finSi

  4. #4
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Tu peux insérer tous tes nombres dans un tableau et ensuite appliquer un algo de tri:
    http://fr.wikipedia.org/wiki/Algorithme_de_tri
    te donnera un paquet de possibilités!

  5. #5
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    Citation Envoyé par reggae
    Tu peux insérer tous tes nombres dans un tableau et ensuite appliquer un algo de tri:
    http://fr.wikipedia.org/wiki/Algorithme_de_tri
    te donnera un paquet de possibilités!
    est ce bien interressant de trier toutes les valeurs pour n'en extraire que 2 ?

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Tu parcours une seule fois ton tableau en maintenant l'invariant a est le le petit nombre trouvé jusqu'à présent et b est le deuxième plus petit.

  7. #7
    Membre confirmé Avatar de faico
    Inscrit en
    Août 2005
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 242
    Par défaut
    Salam,
    Je pense que l'algo donner par jobherzt est la meilleure 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
     
    min1=min2=tableau[0]
     
    de i=1 a tailleTableau-1 faire
     
    si tableau[i] <= min1
      //on a trové plus petit que min1, donc l'ancienne valeur de min1 est le 
      //deuxieme plus petit nmbre trouvé pour l'instant
      min2=min1                  
      min1=tableau[i]            
    sinon
      si tableau[i] <=min2 //on sait deja que tableau[i]>min1
        min2=tableau[i]
      finSi
    finSi

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

Discussions similaires

  1. Trouver la plus petite variable
    Par santacrus dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/06/2009, 15h57
  2. Réponses: 3
    Dernier message: 23/03/2008, 11h05
  3. Mettre en couleur le plus petit nombre d'une ligne
    Par vatsyayana dans le forum Excel
    Réponses: 7
    Dernier message: 20/02/2008, 14h49
  4. Trouver le plus petit élément d'une liste
    Par Invité dans le forum C#
    Réponses: 1
    Dernier message: 23/04/2007, 10h11
  5. Réponses: 52
    Dernier message: 13/03/2007, 15h07

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