GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Exercícios de java - Calcular de crescimento demográfico mundial


#1

Olá, pessoal!

eu não sou bom de geográfico...

gostaria quem conhece coisa de geografia...

esse exercício no "Java - como programar edição 8" no pag 55 cap 2.34 diz :

  • Utilize a web para determinar a população mundial atual e a taxa de crescimento demográfica mundia anual. escreva um aplicativo que introduza esses valores e, então, que exiba a população mundial estimada depois um, dois, três, quatro e cinto anos.

e ai encontrei no web vários tipos de formula para calcular, não entendo bem coisa de geográfia... que conhece me mostra do qual a formula e comando da java.

obrigado pela atenção...


#2

Digamos que a população mundial atual seja de 10 bilhões de pessoas, e a previsão de crescimento demográfico seja de 5% ao ano. Como você deve saber, 5% quer dizer 0.05 em Java, e 100% quer dizer 1.0.
Você não precisa entender de geografia, só precisa saber o que é 5% e 100%.

A população atual é de 10000000000 pessoas
A população no próximo ano vai ser de 10000000000 * (1.0 + 0.05) = 10500000000
A população daqui a 2 anos será de 10500000000 * (1.0 + 0.05) = 11025000000
Daqui a 3 anos será de 11025000000 * (1.0 + 0.05) = 11576250000
e assim por diante.

Não vamos fazer o exercício para você, só estou explicando como é que você o resolveria em papel.


#3

valeu pelo reforço me explicar... agora estou entendo..

vou fazer comando da java..

obrigado!


#4

eu tentnado a programar, e axei meio estranho...

olha por exemplo população mundial são 6,6 bilhoes é 6600000000, certo?

eu não consegui programar esse valor 6600000000 e aparecendo me diz que está erro? pois nunca fiz numero longo, só curto. esse váriavel é inteiro.
quem sabe alguns sobre esse me explica alguns esse erro?

Aguardo ao retorno..


#5

De fato, quando o número fica muito grande, o Java mostra com "notação científica". No seu caso, você vai ver que ele mostra "6.6E9", ou seja, 6.6 vezes o número 1, seguido de 9 zeros. Além disso, quando o número fica muito grande, você tem de pôr um ".0" depois dele, como você vai ver no programa abaixo.

Se você quer ver com todos os zeros, você precisa usar "printf". Mais ou menos assim:

class Populacao {
    public static void main (String[] args) {
        double pop = 6600000000.0;
        System.out.println (pop); 
        System.out.printf ("%,.0f", pop); System.out.println();
    }
}

O resultado do programa acima:

6.6E9
6.600.000.000

OK? (Em particular, eu recomendaria a você a aprender a notação científica. Você vai ouvir falar muito dela ainda.)


#6

Cuidado: quando você vai fazer qualquer conta (qualquer conta!), evite usar float. Use sempre double. (Quando você tiver mais traquejo, pode tentar usar java.math.BigDecimal).
No seu caso, você tem de fazer contas, portanto use double. Não existem duas pessoas e meia (a menos naquele seriado do SBT :smile: ), mas como você vai fazer contas, você pode depois arredondar na hora de mostrar, que é o que fiz com o printf.


#7

acabei de fazer e fiz teste pelo funcionar e funcionou.. mais ou menos assim que fiz..

public class Pag55Cap234 {
// java - como programar - pag 55 cap 2.34
	public static void main(String[] args) {
		System.out.println("A polupação Mundial são 6,6 Bilhões de pessoas");
		double pop = 6600000000.0;
		for(int i = 1; i < 6; i++){
			pop = pop * (1.0 + 0.5);
			System.out.printf("Total população %.0f pelo %s anos\n",pop,i);
		}
	}
}

valeu!!!


#8

Espera um pouquinho. A população mundial aumenta 50% ao ano ? ( você escreveu pop = pop * (1.0 + 0.5); , ou seja, 0.5 = 50% ) ? Se estiver ocorrendo isso, precisamos mudar para a Lua daqui a alguns anos.


#9

é isso 0.5 é 50%, pop é recebendo um valor 6,6 bi, 1.0 é 100%...


#10

Cara oque ele estranhou e eu também estranhei é a sua resolução =p

Segundo ao sua resolução o crescimento demográfico populacional mundial anual cresce a cada ano 50% sendo que (50.0 / 100.0 = 0.5) ou seja realmente este cálculo ficou maluco, agora olhe abaixo e reflita, a previsão para 2050 (http://www1.folha.uol.com.br/folha/mundo/ult94u373836.shtml) é de chegarmos em 10 bi. de pessoas no mundo, veja abaixo o resultado se deixarmos 0.5 ou 50% como você deixou:

Claro que eu também achei estranho mandarem fazer este exercício sem nem termos aprendido double ainda que é no cap.3, mas ao menos o laço ainda não era necessário se for seguir de acordo como o livro está ensinando, laço tabém é no cap.3 se não me engano :smile:

/*
 * Programa que calcula a taxa de crescimento demográfico mundial em seis anos
 * com base no crescimento de 1.5% ao ano(procure saber a taxa atual) ou como calculá-la
 */
public class Exercicio16Cap2 {//início classe Exercicio16Cap2
    public static void main(String[] args) {//início método main
        double populacaoAtual = 6700000000.0,//obtém população atual
               crescimentoAnual = 1.5 / 100.0;//obtém a taxa de crescimento esperada para o próximo ano
        System.out.printf("Para 2011 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
        populacaoAtual = populacaoAtual * (1.0 + crescimentoAnual);
        System.out.printf("Para 2012 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
        populacaoAtual = populacaoAtual * (1.0 + crescimentoAnual);
        System.out.printf("Para 2013 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
        populacaoAtual = populacaoAtual * (1.0 + crescimentoAnual);
        System.out.printf("Para 2014 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
        populacaoAtual = populacaoAtual * (1.0 + crescimentoAnual);
        System.out.printf("Para 2015 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
        populacaoAtual = populacaoAtual * (1.0 + crescimentoAnual);
        System.out.printf("Para 2016 averão %,.0f habitantes no planeta !\n", (populacaoAtual * (1.0 + crescimentoAnual)));
    }//fim método main
}//fim classe Exercicio16Cap2

[color=red]A saída do programa resultará:[/color]

Espero ter ajudado :smile:


#11

Valeu cara! Obrigado pela dica!


#12

eu também achei muito estranho o exercício do livro , pois estava abordando algo que não estava no capitulo, e isso deixar meio desorientado .


#13