[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]

3.7
  L'heure du bilan - Corrigé
Niveau 2
 
 
Fichiers:
  Bilan.java    

Ici, il fallait noter qu'il n'est pas nécessaire de stocker les montants de chaque mois. On s'intéresse uniquement à faire un certain nombre de calculs/tests sur les montants introduits au fur et à mesure. Par exemple: à chaque fois qu'un montant est introduit, on l'ajoute au total des montants, stocké dans la variable total, et qui va nous servir au calcul de la moyenne. L'algorithme pour trouver le minimum (resp. maximum) est classique: à chaque fois qu'un nouveau montant est introduit on teste si ce montant est plus petit que le minimum déjà connu. Si oui, le minimum connu devient ce montant, sinon il garde sa valeur.

Le minimum connu est ici initialisé à la plus grande valeur possible pour une variable de type int, donnée en Java par Integer.MAX_VALUE. Si on l'initialisait arbitrairement avec une valeur trop petite (par exemple 10), l'algorithme nous retournerait la valeur d'initialisation au lieu du véritable minimum. On procède de manière analogue pour le maximum.

 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
import java.util.Scanner;

class Bilan {

    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        // Lecture du nombre de mois
        System.out.print("Donnez le nombre de mois: ");
        int months = scanner.nextInt();

        int min = Integer.MAX_VALUE;
        int max = 0;
        int total = 0;

        // Lecture des montants, accumulation et valeurs extrêmes
        for (int i = 0; i < months; i++) {
            System.out.print(" Donnez le montant du mois " + (i + 1)  + " (Frs): ");
            int montant = scanner.nextInt();
            total = total + montant;

            if (montant > max) {
                max = montant;
            }

            if(montant < min) {
                min = montant;
            }
        }

        System.out.println("La somme mensuelle moyenne reçue est: " + (total / months));
        System.out.println("Le montant mensuel minimal reçu est: "+ min);
        System.out.println("Le montant mensuel maximal reçu est: "+ max);
    }
}

 


[Précédent]
[Index] | [Enoncé] | [Version imprimable]
[Prochain]