(Résolu) Fonction branchements conditionnels et boucles
Fermé
aom13
Messages postés2Date d'inscriptionmardi 30 septembre 2014StatutMembreDernière intervention30 septembre 2014
-
Modifié par aom13 le 30/09/2014 à 09:27
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024
-
30 sept. 2014 à 09:43
Bonjour a tous
Voici mon problême
//L'énoncé du problême
Population d'une année donnée
La formule suivante :
pfin = pinit exp(nb )
permet de calculer la population pfin atteinte à partir d'une population initiale pinit
au bout de l'écoulement de nb années lorsque le taux de croissance de la population
est .
Il vous est demandé de compléter le programme en dessous de :
// ===== PARTIE 1 =====
de sorte à ce qu'il :
1. demande à l'utilisateur d'introduire une année, anneefinale, supérieure strictement
à anneeInitiale (donnée dans le programme fourni) ; l'année
sera redemandée à l'utilisateur tant qu'elle n'est pas strictement supérieure
à anneeInitiale ;
2. de calculer et afficher la population atteinte en anneefinale selon l'exemple
de déroulement ci-dessous et en appliquant la formule donnée.
L'instruction d'affichage sera identique à celle fournie pour afficher la population
initiale (et qui permet notamment d'avoir un affichage avec 3 chiffres après la
virgule).
Indications :
-- la fonction expontentielle exp s'écrit Math.exp en Java, par exemple :
Math.exp(x) ;
-- le taux de croissance est donné en pourcentage dans le programme ; il
conviendra de le diviser par 100 pour obtenir les valeurs adéquates.
2
Exemple de déroulement
====---- PARTIE 1 ----====
Population en 2011 : 7.000
Quelle année (> 2011) ? 2010
Quelle année (> 2011) ? 2008
Quelle année (> 2011) ? 2016
Population en 2016 : 7.433
Le programme affiche donc ici la population sur terre en 2016 sachant que l'on a
atteint les 7 milliards en 2011 et que la croissance est estimee a 1.2% annuellement.
1.3 Evolution de la population
On souhaite maintenant faire en sorte que le programme affiche aussi l'évolution
de la population chaque année, jusqu'à ce qu'elle atteigne un nombre de milliards
donné, saisi par l'utilisateur.
Complétez le programme en dessous de :
System.out.println("\n====---- PARTIE 2 ----====");
de sorte à ce qu'il :
1. demande à l'utilisateur d'introduire une population cible (combien de milliard
on souhaite atteindre) ; cette population cible sera strictement supérieure
à populationInitiale (donnée dans le programme fourni) ;
la population cible sera redemandée à l'utilisateur tant qu'elle n'est pas
strictement supérieure à populationInitiale ;
2. de calculer et afficher la population pour toutes les années devant s'écouler
jusqu'à ce que la population cible soit atteinte, selon l'exemple de déroulement
ci-dessous ; le format des affichages pour chaque année sera
identique à celui utilisé jusqu'ici (fourni).
Exemple de déroulement
====---- PARTIE 1 ----====
Population en 2011 : 7.000
Quelle année (> 2011) ? 2021
Population en 2021 : 7.892
3
====---- PARTIE 2 ----====
Combien de milliards (> 7.0) ? 6.5
Combien de milliards (> 7.0) ? 7.0
Combien de milliards (> 7.0) ? 8.5
Population en 2012 : 7.085
Population en 2013 : 7.170
Population en 2014 : 7.257
Population en 2015 : 7.344
Population en 2016 : 7.433
Population en 2017 : 7.523
Population en 2018 : 7.613
Population en 2019 : 7.705
Population en 2020 : 7.798
Population en 2021 : 7.892
Population en 2022 : 7.988
Population en 2023 : 8.084
Population en 2024 : 8.182
Population en 2025 : 8.281
Population en 2026 : 8.381
Population en 2027 : 8.482
Population en 2028 : 8.584
1.4 On affine la simulation
Nous souhaitons maintenant être un peu plus réaliste en prenant en compte la surpopulation
: à chaque fois que la population mondiale double, le taux de croissance
est divisé par deux.
Complétez maintenant votre programme après :
System.out.println("\n====---- PARTIE 3 ----====");
de sorte à ce qu'il affiche la population chaque année jusqu'à atteindre la population
cible voulue (qui reste la même que celle saisie dans la partie 2).
On affichera également le taux de croissance, en respectant un format strictement
identique à celui produit dans l'exemple de déroulement ci-dessous.
Exemple de déroulement
====---- PARTIE 1 ----====
Population en 2011 : 7.000
Quelle année (> 2011) ? 2016
Population en 2016 : 7.433
====---- PARTIE 2 ----====
Combien de milliards (> 7.0) ? 29
Population en 2012 : 7.085
Population en 2013 : 7.170
Population en 2014 : 7.257
Population en 2015 : 7.344
Population en 2016 : 7.433
Population en 2017 : 7.523
Population en 2018 : 7.613
Population en 2019 : 7.705
Population en 2020 : 7.798
Population en 2021 : 7.892
...
Population en 2130 : 29.192
====---- PARTIE 3 ----====
Population en 2012 : 7.085 ; taux de croissance : 1.2%
Population en 2013 : 7.170 ; taux de croissance : 1.2%
Population en 2014 : 7.257 ; taux de croissance : 1.2%
Population en 2015 : 7.344 ; taux de croissance : 1.2%
Population en 2016 : 7.433 ; taux de croissance : 1.2%
Population en 2017 : 7.523 ; taux de croissance : 1.2%
Population en 2018 : 7.613 ; taux de croissance : 1.2%
Population en 2019 : 7.705 ; taux de croissance : 1.2%
Population en 2020 : 7.798 ; taux de croissance : 1.2%
Population en 2021 : 7.892 ; taux de croissance : 1.2%
...
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%
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));
30 sept. 2014 à 09:18
http://codes-sources.commentcamarche.net/forum/affich-1557761-bar-sujet-de-pfe-tp-et-autres-devoirs-scolaires#top
30 sept. 2014 à 09:26
Loin de moi de vous demander de faire mon code ,mais un début de piste,
merci de votre compréhension
je modifie mon post comme résolu
30 sept. 2014 à 09:43
Nous pouvons t'aider... mais à condition que tu formules correctement UNE question (TECHNIQUE).
Je t'invite à lire ceci avant :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code