(Résolu) Fonction branchements conditionnels et boucles

Fermé
aom13 Messages postés 2 Date d'inscription mardi 30 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014 - Modifié par aom13 le 30/09/2014 à 09:27
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 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%

////////////// mon code////////////////

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));



// ===== PARTIE 1 =====
System.out.print("Quelle année (> 2011) ? ");


// ===== PARTIE 2 =====
System.out.println("\n====---- PARTIE 2 ----====");



// ===== PARTIE 3 =====
System.out.println("\n====---- PARTIE 3 ----====");




}
}

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
30 sept. 2014 à 08:41
Salut,

J'ose espérer que tu n'as pas imaginé une seconde que nous allons faire ton exercice pour toi ?
1
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 sept. 2014 à 09:18
0
aom13 Messages postés 2 Date d'inscription mardi 30 septembre 2014 Statut Membre Dernière intervention 30 septembre 2014
30 sept. 2014 à 09:26
Rebonjour

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
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
30 sept. 2014 à 09:43
Loin de moi de vous demander de faire mon code ,mais un début de piste,
merci de votre compréhension
Tel que tu as exposé ton "souci"... tu ne pouvais pas obtenir une autre réponse que celle que l'on t'a donné....

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
0
Rejoignez-nous