Bonjour,

Je suis inscrit à un MOOC (Initiation à la programmation Java).

Voici le le résultat escompté pour l'exercice :

Population en 2068 : 13.873 ; taux de croissance : 1.2%
Population en 2069 : 14.040 ; taux de croissance : 0.6%
Population en 2070 : 14.124 ; taux de croissance : 0.6%
Population en 2195 : 29.018 ; taux de croissance : 0.3%

— la population double en 2069 où elle passe de 7 à 14 milliards ;
— qu’elle doit aussi doubler en 2185 où elle passe de 14 à 28 milliards.

Le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import java.util.Scanner;
import java.text.DecimalFormat;
 
public class Population {
    public static void main(String[] args) {
 
        DecimalFormat df = new DecimalFormat("#0.000");
        Scanner keyb = new Scanner(System.in);
 
        int anneeInitiale = 2011;        // annee initiale
        double tauxCroissance = 1.2;     // taux de croissance, en %
        double populationInitiale = 7.0; // population initiale, en milliard d'humains
 
        double populationCourante = populationInitiale; // population mondiale pour l'annee courante
        int anneeCourante = anneeInitiale;              // annee de calcul
 
        System.out.println("====---- PARTIE 1 ----====");
        System.out.println("Population en " + anneeCourante + " : " + df.format(populationCourante));
 
        /*******************************************
         * Completez le programme a partir d'ici.
         *******************************************/
 
        // ===== PARTIE 1 =====
        int anneeFinale;
        do{
 
            System.out.print("Quelle année (> " + anneeInitiale + ") ? ");
        anneeFinale=keyb.nextInt();
        }
        while(anneeInitiale>=anneeFinale);
 
        System.out.println("Population en "+anneeFinale+": "+df.format((populationInitiale*Math.exp((anneeFinale-anneeInitiale)*tauxCroissance/100))));
 
        // ===== PARTIE 2 =====
 
        System.out.println("\n====---- PARTIE 2 ----====");
        double populationCible;
 
        do{
            System.out.print("Combien de milliards (> 7.0) ? ");
            populationCible=keyb.nextDouble();
 
        }while(populationCible<=populationInitiale);
 
        while(populationCible>=populationCourante){
            populationCourante=populationCourante*Math.exp(tauxCroissance/100);
            System.out.println("Population en "+(anneeCourante+1)+ " : "+df.format(populationCourante));
            anneeCourante+=1;
 
             };
 
 
        // ===== PARTIE 3 =====
        System.out.println("\n====---- PARTIE 3 ----====");
 
        anneeCourante=anneeInitiale+1;
        populationCourante=populationInitiale;
 
        double cible=populationInitiale;
 
        while(populationCible>=populationCourante){
 
            populationCourante=populationCourante*Math.exp(tauxCroissance/100);
            System.out.println("Population en "+ anneeCourante + " : "+df.format(populationCourante)+" ; taux de croissance : "+tauxCroissance+"%");
            anneeCourante+=1;
 
            if((int)(populationCourante*100)/100 ==(int)(cible*2.0*100)/100){
                tauxCroissance=tauxCroissance/2;              
                cible=populationCourante;}
        }
 
        /*******************************************
         * Ne rien modifier apres cette ligne.
         *******************************************/
    }
}
Quelqu'un saurait-il me guider un peu pour finaliser ce programme ?

Merci d'avance pour votre aide.