Bonjour,
je suis en train de faire un petit exo sur les boucles conditionnelles et je bute sur le calcul pour afficher l'augmentation année après année d'une population, connaissant le nombre de la population de départ ( 7 en milliard) pour une année donnée ( ici 2011 ) avec u taux de croissance constant de 1.2%.
j'ai fait la première partie, mais partie 2 je veux afficher année par année la population jusqu’à un nombre de population butoir ( ici 8,5 en milliard )
mon calcul foire car je devrais avoir ceci
Population en 2012 : 7.085
Population en 2013 : 7.170
Population en 2014 : 7.257
Population en 2015 : 7.344
.......
Population en 2028 : 8.584
hors j'ai ceci
Population en 2012 :7,085
Population en 2013 :8,085
voila mon 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 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 ===== // utilisez cette instruction pour poser votre question : int anneFinale; double populationFinale; int nombreAnnee ; do { System.out.print("Quelle année (> " + anneeInitiale + ") ? "); anneFinale = keyb.nextInt(); nombreAnnee = anneFinale - anneeInitiale; }while (anneFinale < anneeInitiale); populationFinale = populationInitiale*(Math.exp(nombreAnnee*(tauxCroissance/100))); System.out.println("Population en "+anneFinale+" :"+df.format(populationFinale)); // ===== PARTIE 2 ===== Scanner keyb2 = keyb; double populationCible; double croissancePopulation = populationInitiale*(Math.exp(1*(tauxCroissance/100))); double cumulPopulation =populationInitiale+croissancePopulation; System.out.println("====---- PARTIE 2 ----===="); do{ System.out.println("Combien de milliards (> " + populationInitiale + ") ? "); populationCible = keyb2.nextDouble(); } while (populationCible<populationInitiale); for (double i=0; croissancePopulation<=populationCible;i++) { double anne = i++; double test = populationInitiale *(( 1+tauxCroissance)) ; System.out.println("Population en "+(++anneeInitiale)+" :"+df.format(croissancePopulation++)); } // ===== PARTIE 3 ===== System.out.println("====---- PARTIE 3 ----===="); /******************************************* * Ne rien modifier apres cette ligne. *******************************************/ } }
merci pour l'aide
Partager