[Précédent] |
4.1 |
Manipulation d'un tableau - Enoncé | Niveau 0 |
||
But: |
Utiliser un tableau pour calculer la moyenne de classe ainsi que les écarts à la moyenne du futur test du cours d'informatique. | |||
Thème: |
- | |||
Fichiers: |
- |
Nous allons dans cet exemple écrire un programme permettant à l'utilisateur de calculer la moyenne de classe ainsi que les écarts à la moyenne du futur test du cours d'informatique.
Vu le nombre d'étudiants suivant le cours, il est impossible de stocker la note de chaque étudiant dans une variable distincte. Nous avons donc besoin d'un tableau. L'ébauche du programme est la suivante :
import java.util.Scanner; class Moyenne { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { // Demande le nombre d'étudiants à l'utilisateur int nombreEtudiants; System.out.print("Donnez le nombre d'etudiants : "); nombreEtudiants = scanner.nextInt(); double moyenne = 0.0; // Initialise un tableau pouvant contenir autant // de notes que d'étudiants double [] notes = new double[nombreEtudiants]; } } |
Maintenant que notre tableau est déclaré, nous pouvons le remplir en demandant à l'utilisateur la note de chaque étudiant. Puisque le nombre d'itérations est connu, nous allons utiliser une boucle for. Ainsi, à chaque itération, nous pouvons demander une note et la stocker dans une case du tableau. On en profite aussi pour calculer la somme des notes au fur et à mesure qu'on les reçoit.
import java.util.Scanner; class Moyenne { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { // Demande le nombre d'étudiants à l'utilisateur int nombreEtudiants; System.out.print("Donnez le nombre d'etudiants : "); nombreEtudiants = scanner.nextInt(); double moyenne = 0.0; // Initialise un tableau pouvant contenir autant // de notes que d'étudiants double[] notes = new double[nombreEtudiants]; // Lecture des notes for (int i=0; i < nombreEtudiants; i++) { System.out.print(" Note etudiant " + i + " : " ); // Stocke la note du ième étudiant // dans la ième case du tableau notes[i] = scanner.nextDouble(); moyenne = moyenne + notes[i]; } } } |
Il est maintenant possible de calculer la moyenne de classe et d'afficher l'écart à la moyenne pour chaque étudiant.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.util.Scanner; class Moyenne { private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { // Demande le nombre d'étudiants à l'utilisateur int nombreEtudiants = 0; System.out.print("Donnez le nombre d'etudiants : "); nombreEtudiants = scanner.nextInt(); double somme = 0.0; // Initialise un tableau pouvant contenir autant // de notes que d'étudiants double[] notes = new double[nombreEtudiants]; // Lecture des notes for (int i=0; i < nombreEtudiants; i++) { System.out.print(" Note etudiant " + (i + 1) + " : " ); // Stocke la note du ième étudiant // dans la ième case du tableau notes[i] = scanner.nextDouble(); somme = somme + notes[i]; } double moyenne = somme / nombreEtudiants; // Affichage des résultats System.out.println("Moyenne de classe : " + moyenne); System.out.println(" Etudiant : note (ecart a la moyenne)"); for (int i = 0; i < nombreEtudiants; i++) { System.out.println( " " + i + " : " + notes[i] + " (" + (notes[i] - moyenne) + ")"); } } } |
Exemple d'exécution du programme :
Donnez le nombre d'etudiants : 4 Note etudiant 0 : 4.0 Note etudiant 1 : 4.0 Note etudiant 2 : 5.0 Note etudiant 3 : 6.0 Moyenne de classe : 4.75 Etudiant : note (ecart a la moyenne) 0 : 4.0 (-0.75) 1 : 4.0 (-0.75) 2 : 5.0 (0.25) 3 : 6.0 (1.25)
[Précédent] |