Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Exercício: Populações de Duas Cidades

Vamos resolver o exercício 05, de nossa lista de exercícios de laços em PHP:

04. Supondo que a população de um país A seja da ordem de 80000 habitantes com uma taxa anual de crescimento de 3% e que a população de B seja 200000 habitantes com uma taxa de crescimento de 1.5%. Faça um programa que calcule e escreva o número de anos necessários para que a população do país A ultrapasse ou iguale a população do país B, mantidas as taxas de crescimento.

05. Altere o programa anterior permitindo ao usuário informar as populações e as taxas de crescimento iniciais. Valide a entrada e permita repetir a operação. 

Estudar pela Apostila de PHP

Código comentado

Seja $A o valor da população da cidade A e $B o da B.
Seja $tA a taxa de crescimento da população da cidade A e $tB o da B.

Primeira coisa que temos que notar é que o usuário vai inserir a taxa em porcentagem, então precisamos dividir por 100 pra ter a taxa correta.

Após o primeiro ano, cada população vai ser:
$A = $A * (1 + $tA);
$B = $B * (1 + $tB);

Isso vai ocorrer enquanto o tamanho de $A seja menor a $B.
Quando for igual ou superior, o laço DO WHILE vai parar, e exibimos o valor da variável de controle, que está contando os anos:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>
 <form action="" method="get">
  População da cidade A: <input type="number" name="A" /><br />
  População da cidade B: <input type="number" name="B" /><br />
  Taxa de crescimento da cidade A (em %): <input type="text" name="tA" /><br />
  Taxa de crescimento da cidade B (em %): <input type="text" name="tB" /><br />
  <input type="submit" name="submit" value="Inserir" />
 </form> 
 <?php 
  $A=$_GET['A'];
  $B=$_GET['B'];
  $tA=$_GET['tA'];
  $tB=$_GET['tB'];
  $count=1;
  
  $tA /= 100;
  $tB /= 100;
  
  do{
   $A *= (1+$tA);
   $B *= (1+$tB);
   
   echo "Após $count anos:<br />";
   echo "População de A: $A <br />";
   echo "População de B: $B <br />";
   
   $count++;
  }while($A<$B);
  
  echo "Em $count anos a população de A atinge a de B";
 ?>
 </body>
</html>
Fizemos com que a cada ano, fosse mostrado o número de habitantes da cidade A e da cidade B, para você ver como só vai ultrapassar no tempo certo.

Isso permite você verificar se a solução está correta.
Deixamos a validação se a entrada está correta ou não com você.

Dica: Cheque se a população é um número positivo de pessoas, e a população de A deve ser menor e ter taxa de crescimento maior, do contrário nunca alcançará B.