programmation Java (école d'ingénieur) · Chapitre 12 · Exercice de TD
Notes au-dessus de la moyenne
Collections et génériques · niveau 1 (application)
Énoncé
Écrire un programme qui lit au clavier des notes (nombres décimaux) jusqu'à une note négative, les range dans une List<Double>, puis affiche le nombre de notes, leur moyenne avec deux décimales, et la liste des notes strictement supérieures à la moyenne. Que faut-il faire si aucune note n'est saisie ?
Corrigé
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Exo2Moyenne {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
List<Double> notes = new ArrayList<>();
while (sc.hasNextDouble()) {
double x = sc.nextDouble();
if (x < 0) break; // une note négative termine la saisie
notes.add(x);
}
if (notes.isEmpty()) {
System.out.println("Aucune note.");
return;
}
double somme = 0;
for (double n : notes) somme += n;
double moyenne = somme / notes.size();
List<Double> dessus = new ArrayList<>();
for (double n : notes) if (n > moyenne) dessus.add(n);
System.out.printf("%d notes, moyenne %.2f%n", notes.size(), moyenne);
System.out.println("au-dessus de la moyenne : " + dessus);
}
}
Avec l'entrée 12 8.5 15 9 -1 :
4 notes, moyenne 11.13
au-dessus de la moyenne : [12.0, 15.0]
Sans note, la moyenne serait : le test notes.isEmpty() évite d'afficher NaN. On parcourt deux fois la liste : la moyenne n'est connue qu'à la fin de la saisie, c'est pourquoi il faut mémoriser les notes.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.