Adloun

programmation Java (école d'ingénieur) · Chapitre 5 · Exercice de TD

Histogramme des notes

Tableaux · niveau 2

Énoncé

Des notes entières entre et sont rangées dans un tableau. Écrire une méthode qui compte les notes de chacune des classes , , , , , et un programme qui affiche un histogramme en étoiles. Avec les notes {0, 4, 5, 8, 9, 12, 13, 16, 17, 20, 11, 15, 10}, on doit obtenir :


 0- 4 | **
 5- 8 | **
 9-12 | ****
13-16 | ***
17-20 | **

Corrigé


static int[] histogramme(int[] notes) {          // notes entre 0 et 20
    int[] h = new int[5];                        // [0,4], [5,8], [9,12], [13,16], [17,20]
    for (int x : notes) {
        int classe = (x <= 4) ? 0 : (x - 1) / 4;  // 5..8 -> 1, ..., 17..20 -> 4
        h[classe]++;
    }
    return h;
}

Le tableau h sert de compteur : h[c] est le nombre de notes de la classe . La formule (x - 1) / 4 envoie sur , sur , sur et sur (on la vérifie aux bornes de chaque classe). L'affichage :


String[] etiquettes = {" 0- 4", " 5- 8", " 9-12", "13-16", "17-20"};
int[] h = histogramme(notes);
for (int i = 0; i < 5; i++) {
    System.out.print(etiquettes[i] + " | ");
    for (int k = 0; k < h[i]; k++) System.out.print("*");
    System.out.println();
}

produit exactement l'histogramme de l'énoncé.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →