Supondo que uma cidade X tenha 1.000.000 de habitantes e uma taxa de crescimento anual de 0.3% e outra cidade Y tenha 300.000 habitantes e uma taxa de crescimento anual de 7%. Quantos anos serão necessários para a população da cidade Y superar a população da cidade X ??
Como eu faço um algoritmo para resolver este problema? mais especificamente em portugol? HELP-ME
Soluções para a tarefa
Então, meu bom, não está em Portugol porque eu possuo certo grau de "xenofilia" e menosprezo a chauvinismo.
Explicação:
Matemática:
Primeiramente, vamos pensar como seria a resolução matemática:
no geral, você possui a população geral alpha e a cada ano ela aumenta em determinado valor. Dessa maneira, podemos logo notar a função:
E, como queremos encontrar determinado ano onde a população da cidade y é maior do que a da cidade x, podemos transformar em uma inequação:
Código:
Agora, é importante saber que é uma inequação porque podemos agora analisar claramente e buscar uma solução adequada ao problema. Pense da seguinte forma: o programa precisa checar se a população y é maior do que a população x e, caso não, precisa adicionar mais 1 à variável designada aos anos, isso até encontrar um valor ao expoente "anos" que torne a inequação verdadeira. Dessa maneira, podemos entender que trata-se de um loop, pois o programa precisará executar certos comandos Z vezes até encontrar um valor verdadeiro.
Pronto, já foram todas as partes importantes do programa:
1) Criar as variáveis com valores da população inicial, as taxas, e uma variável que armazenará as interações (o que não é necessário, para ser honesto. Você poderia utilizar a variável da população inicial para conter o valor final. Eu não fiz);
2) Designar a função matemática supracitada à uma variável;
3) Criar um loop que irá adicionar +1 à variável "anos" até encontrar um valor adequado.
Solução:
SqMuKy75
Coloque no URL do pastebin (" pastebin . com / SqMuKy75 "). Brainly não permite links externos.
Obs: a função, no programa, "expoente_f" serve apenas para, obviamente, calcular expoentes. Se tu quiser alguma outra função de uma biblioteca, faça o que quiser; eu apenas não o fiz por preguiça de pesquisar uma biblioteca adequada.
Obs II: eu entendo que talvez minha explicação não deixe muito mais claro o programa. Caso for o caso, estou aberto à perguntas.
x(a)=x(a-1)+x(a-1)*0,003= x(a)=x(a-1)*(1+0,003)=
x(a)=x(a-1)*(1,003)
y(a)=y(a-1)+y(a-1)*0,07=
y(a)=y(a-1)*(1+0,07)=
y(a)=y(a-1)*(1,07)
————-/—————/—————-/—
variáveis
inteiro ano<-0
inteiro x<-1000000
inteiro y<-300000
início
enquanto y ano<-ano+1
x<- x*1,003
y<- y*1,07
fimenquanto
escrever ano
fim
—————————————————
Nunca usei essa linguagem Portugol, então tive que pesquisar, pois nunca havia ouvido o no e dela. Mas tentei transcrever o algoritmo para a linguagem, então preste atenção, pois pode conter algum erro de escrita!
O algoritmo base é o seguinte:
-Enquanto y for menor que x:
- Avanço os anos
- Cálculo da população em x
- Cálculo da população em y
-Quando y for maior que x, cumpri meu objetivo.