CoddyRun

Support public · Aide sur un programme

Résolu

Trouver la deuxième plus grande valeur d’un tableau ?

Ouvert par Eros le 8 novembre 2026 · 4 messages · 12 vues

Ce sujet est résolu. Voir la réponse retenue.
Eros a ouvert le sujet 8 novembre 2026 à 08h54

Bonjour

Comment trouver la deuxième plus grande valeur d’un tableau ? J’ai un tableau contenant plusieurs nombres :

[12, 7, 25, 18, 25, 9]

Je voudrais trouver la deuxième plus grande valeur sans trier le tableau.
Les doublons ne doivent pas être pris en compte ici !, le résultat attendu est donc 18, et non 25.

Comment faire dans CoddyRun ?

Merci

Bonjour Eros,

Eros a écrit :

Comment faire dans CoddyRun ?

CoddyRun n’a pas de logique particulière ou spéciale. La méthode pour trouver la deuxième plus grande valeur reste la même que dans les autres langages de programmation.

Eros a écrit :

Comment trouver la deuxième plus grande valeur d’un tableau ?

Il suffit de parcourir le tableau une seule fois et de mettre à jour les deux plus grandes valeurs au fur et à mesure.

Exemple :

nombres est un tableau
nombres vaut [12, 7, 25, 18, 25, 9]

plusGrand est un nombre
deuxiemePlusGrand est un nombre

plusGrand vaut nombres[0]
deuxiemePlusGrand vaut nombres[0]

pour indice de 1 à longueur(nombres) - 1
    valeurActuelle est un nombre
    valeurActuelle vaut nombres[indice]

    si valeurActuelle > plusGrand alors
        deuxiemePlusGrand vaut plusGrand
        plusGrand vaut valeurActuelle
    sinon si valeurActuelle > deuxiemePlusGrand et valeurActuelle <> plusGrand alors
        deuxiemePlusGrand vaut valeurActuelle
    fin si
fin pour

affiche "Plus grande valeur : " + convertir_texte(plusGrand)
affiche "Deuxième plus grande valeur : " + convertir_texte(deuxiemePlusGrand)

La condition suivante empêche de considérer deux fois la même valeur maximale :

valeurActuelle <> plusGrand

Résultat :

  • Plus grande valeur : 25
  • Deuxième plus grande valeur : 18

Note : pour une version totalement robuste, il faudra aussi gérer les tableaux contenant moins de deux valeurs différentes.

Apprendre à coder, c'est avant tout apprendre à penser.

Merci, le principe est plus clair. 😃

Mais que se passe-t-il si le tableau contient une seule valeur ou plusieurs fois le même nombre ?

Par exemple :

[25, 25, 25]

Comment vérifier qu’il existe bien une deuxième valeur distincte ?

Merci 😊

Eros a écrit :

Comment vérifier qu’il existe bien une deuxième valeur distincte ?

Oui, il faut prévoir ce cas. Un tableau peut contenir plusieurs éléments sans contenir deux valeurs différentes, comme :

[25, 25, 25]

On peut utiliser un booléen pour vérifier si une deuxième valeur distincte a réellement été trouvée :

nombres est un tableau
nombres vaut [25, 25, 25]

plusGrand est un nombre
deuxiemePlusGrand est un nombre
deuxiemeValeurTrouvee est un booléen

deuxiemeValeurTrouvee vaut faux

si longueur(nombres) < 2 alors
    affiche "Le tableau ne contient pas assez de valeurs."
sinon
    @ Recherche de la plus grande valeur
    plusGrand vaut nombres[0]

    pour indice de 1 à longueur(nombres) - 1
        si nombres[indice] > plusGrand alors
            plusGrand vaut nombres[indice]
        fin si
    fin pour

    @ Recherche de la deuxième plus grande valeur distincte
    pour indice de 0 à longueur(nombres) - 1
        valeurActuelle est un nombre
        valeurActuelle vaut nombres[indice]

        si valeurActuelle <> plusGrand alors
            si non deuxiemeValeurTrouvee alors
                deuxiemePlusGrand vaut valeurActuelle
                deuxiemeValeurTrouvee vaut vrai
            sinon si valeurActuelle > deuxiemePlusGrand alors
                deuxiemePlusGrand vaut valeurActuelle
            fin si
        fin si
    fin pour

    @ Affichage du résultat
    si deuxiemeValeurTrouvee alors
        affiche "Plus grande valeur : " + convertir_texte(plusGrand)
        affiche "Deuxième plus grande valeur distincte : " + convertir_texte(deuxiemePlusGrand)
    sinon
        affiche "Le tableau ne contient pas deux valeurs différentes."
    fin si
fin si

Avec ce tableau :

[25, 25, 25]

le programme affiche :

  • Le tableau ne contient pas deux valeurs différentes.

Avec celui-ci :

[12, 7, 25, 18, 25, 9]

il affiche :

  • Plus grande valeur : 25
  • Deuxième plus grande valeur distincte : 18

Le booléen deuxiemeValeurTrouvee permet de distinguer une véritable deuxième valeur d’une variable qui n’aurait pas encore été initialisée.

Apprendre à coder, c'est avant tout apprendre à penser.
Une question ? Connectez-vous pour ouvrir votre propre sujet : CoddyRun vous répondra. La création d'un compte est gratuite et prend une minute.