Lógica, perguntado por Usuário anônimo, 11 meses atrás

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

Respondido por Usuário anônimo
1

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:

f(a) = (populacao)(porcentual^{anos})

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:

pop(y)*porc(y)^{anos}  > pop(x)*porc(x)^{anos}

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.


Usuário anônimo: O código ta ótimo, está na linguagem C, inclusive até coloquei pra rodar, porém não consegui interpretá-lo, teria como você passar pra alguma outra linguagem tipo Java ou C++ ??
Usuário anônimo: Tu sabe Python então?
Usuário anônimo: Posso tentar interpretar
Usuário anônimo: já ajuda muito
Usuário anônimo: Posso tentar interpretar e passar pra Java, que é a linguagem q estou estudando no momento
Usuário anônimo: pastebin . com / m0WJuLGN
Usuário anônimo: Fica algo do tipo. Python não é algo que sei corretamente. Provavelmente há maneiras de aprimorar o código.
Usuário anônimo: Por exemplo (algo que também funciona no C, porém pode ficar meio confuso): tirar a variável valor_x e colocar a expressão logo no while loop. Reduz algumas linhas.
Respondido por joaoprad0
1
Sendo “a” o número de anos, temos que

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.


joaoprad0: Essa plataforma não admite indentação, mas de qualquer forma, basta adicionar rapidamente. Se houver alguma dúvida, não hesite em perguntar!
Usuário anônimo: Há alguma linguagem de programação que você consegue entender melhor e me explicar ?
Usuário anônimo: posso tentar interpretar o código, não entendi esse muito bem...
Usuário anônimo: você entende de java?
Perguntas interessantes