Ir ao conteúdo
  • Cadastre-se

VisualG Imprima na tela o ano e a população prevista para a cidade


Posts recomendados

Boa tarde, estou quebrando a cabeça pra tentar resolver esse exercício:

" Em 2010, uma pequena cidade brasileira tem 20.000 habitantes. A previsão
do IBGE é que esta cidade cresça a uma taxa de 5% ao ano. Sabendo
disso, faça um algoritmo que imprima na tela o ano e a população
prevista para a cidade em tal ano, com o ano variando de 2011 até 2030."

Eu deixei assim:

var
cont : inteiro
t,total,p: real
inicio
p<- 20000
t<- 1.05
   para cont de 2011 ate 2030 passo 1 faca
   total<- p*t
   escreval (" O ano de: " ,cont, " terá" ,total, " de habitantes")
fimpara
fimalgoritmo

Desse jeito que estou fazendo sai a mesma população pra todos os anos. Não estou conseguindo alterar o aumento da população conforme os anos passam

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Lucas Rocha Santos

Porque você está repetindo o mesmo cálculo em em todos os anos, vai sair a mesma resposta rsrsrs.

O que você deveria fazer é atualizar a a variável p dentro do laço de repetição, para que o total pegue o último valor calculado.

Link para o comentário
Compartilhar em outros sites

mas mesmo dentro do laço ela esta dando o mesmo resultado para todos os anos

 

fiz assim e da na mesma:

var
cont:inteiro
t,total,p:real
inicio
   para cont de 2011 ate 2030 passo 1 faca
   p<- 20000
   t<- 1.05
   total<- p*t
escreval(" O ano de: " ,cont, " terá" ,total, " de habitantes")
fimpara
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

você conseguiu resolver?

adicionado 2 minutos depois

meu algoritmo so faz o mesmo cálculo, não consigo resolver

var
cont: inteiro
pop, tax, total, popu: real
inicio
 para cont de 2011 ate 2030 faca
 pop <- 20000
 tax <- 0.05
 total <- (pop*tax)+pop
  escreval (total, "",cont)
 fimpara
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@hermesjunior

Ele vai fazer o mesmo cálculo pois a população é sempre a mesma. Você não está atualizando a informação.

adicionado 0 minutos depois

Foi o que eu expliquei aqui:

 

Em 26/06/2017 às 14:27, Math.Pi disse:

p <- 2000
t <- 1.05

para... 

  total <-p*t
  escreva...
  p <- total // p guardará o valor de total atualizado para a próxima iteração.

fimpara

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Por isso:

inicialização: população atual (pop)

 

dentro do PARA:

total (que é a população do ano calculado) vai receber a população atual (pop) multiplicado pela taxa de aumento da população (t)

A população atual passa a ser o resultado do valor achado no total. Você pode simplesmente eliminar essa variável total e fazer assim:

pop <- pop * taxa (Isso é a atualização anual)

Se você usar 2000 dentro do PARA, ele vai sempre fazer 2000 * 0.05 em todos os anos. E não vai pegar a informação mais atual. Esse valor tem que ficar antes do PARA, pois só será utilizado a primeira vez.

Link para o comentário
Compartilhar em outros sites

 

var
cont: inteiro
pop, tax, total : real
inicio
 pop<- 20000
 tax<- 0.05
 para cont de 2011 ate 2030 faca
 total<- pop*tax
  escreval (total+pop, "",cont)
 fimpara
fimalgoritmo
adicionado 39 minutos depois

ja troquei tudo e não atualiza a população

adicionado 55 minutos depois

ja troquei tudo e não atualiza a população

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Veja:

adicionado 2 minutos depois
var
cont: inteiro
pop, tax, total : real
inicio
 pop<- 20000 //ano inicial
 tax<- 0.05 //taxa de atualização
 para cont de 2011 ate 2030 faca
   total<- pop+(pop*tax) //calculo ano inicial + taxa = total
   pop <- total // pop precisa guardar o novo valor da população. É só isso que falta
  escreval (total, "",cont) // você só precisa mostrar uma variável. Como total = pop, escolha um deles.
 fimpara
fimalgoritmo

 

adicionado 2 minutos depois

Dessa forma, pop vai sempre estar atualizada para o novo valor com a taxa anual.

Link para o comentário
Compartilhar em outros sites

@Math.Pi

Agora entendi, isso que não tava entrando na minha cabeça, pensei que não podia uma variável declarada duas vezes com informações diferentes

 

Obrigado pela ajuda amigo

var
cont: inteiro
pop, tax, total : real
inicio
 pop<- 20000
 tax<- 0.05
 para cont de 2011 ate 2030 faca
 total<- pop*tax+pop
 pop<-total
  escreval (pop, "",cont)
 fimpara
fimalgoritmo

Início da execução
 21000 2011
 22050 2012
 23152.5 2013
 24310.125 2014
 25525.63125 2015
 26801.9128125 2016
 28142.008453125 2017
 29549.1088757813 2018
 31026.5643195703 2019
 32577.8925355488 2020
 34206.7871623263 2021
 35917.1265204426 2022
 37712.9828464647 2023
 39598.6319887879 2024
 41578.5635882273 2025
 43657.4917676387 2026
 45840.3663560206 2027
 48132.3846738217 2028
 50539.0039075128 2029
 53065.9541028884 2030

Fim da execução.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Agora ficou bom

var
cont: inteiro
pop, tax, total : real
inicio
 pop<- 20000
 tax<- 0.05
 para cont de 2011 ate 2030 faca
 total<- pop*tax+pop
 pop<-total
  escreval ("Em", cont, " A população prevista é de: ",pop:2:0," Hab")
 fimpara
fimalgoritmo

Início da execução
Em 2011 A população prevista é de: 21000 Hab
Em 2012 A população prevista é de: 22050 Hab
Em 2013 A população prevista é de: 23153 Hab
Em 2014 A população prevista é de: 24310 Hab
Em 2015 A população prevista é de: 25526 Hab
Em 2016 A população prevista é de: 26802 Hab
Em 2017 A população prevista é de: 28142 Hab
Em 2018 A população prevista é de: 29549 Hab
Em 2019 A população prevista é de: 31027 Hab
Em 2020 A população prevista é de: 32578 Hab
Em 2021 A população prevista é de: 34207 Hab
Em 2022 A população prevista é de: 35917 Hab
Em 2023 A população prevista é de: 37713 Hab
Em 2024 A população prevista é de: 39599 Hab
Em 2025 A população prevista é de: 41579 Hab
Em 2026 A população prevista é de: 43657 Hab
Em 2027 A população prevista é de: 45840 Hab
Em 2028 A população prevista é de: 48132 Hab
Em 2029 A população prevista é de: 50539 Hab
Em 2030 A população prevista é de: 53066 Hab

Fim da execução.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Vou tentar complementar..

 

@hermesjunior, apesar de que tópico foi aberto por @Lucas Rocha Santos, vou supor que é o mesmo enunciado, então temos:

 

Em 26/06/2017 às 12:39, Lucas Rocha Santos disse:

Boa tarde, estou quebrando a cabeça pra tentar resolver esse exercício:

" Em 2010, uma pequena cidade brasileira tem 20.000 habitantes. A previsão do IBGE é que esta cidade cresça a uma taxa de 5% ao ano. Sabendo disso, faça um algoritmo que imprima na tela o ano e a população prevista para a cidade em tal ano, com o ano variando de 2011 até 2030."

 

Ou seja, a população deve ir crescendo 5% a cada ano.

2010 = 20000

2011 = 2010 + 5% = 20000 + 5% de 20000
2012 = 2011 + 5% = (20000 + 5% de 20000) + (5% de (20000+5% de 20000))

etc

 

A cada ano a população cresce 5% em relação ao ano anterior...

 

Agora vejamos como estava o seu código:

2 horas atrás, hermesjunior disse:

var
cont: inteiro
pop, tax, total : real
inicio
 pop<- 20000
 tax<- 0.05
 para cont de 2011 ate 2030 faca
 total<- pop*tax
  escreval (total+pop, "",cont)
 fimpara
fimalgoritmo

 

Perceba que no seu código, está fazendo:

"para cada um dos anos que quero calcular faça" //para 2011, 2012, 2013... até 2030
   "PopulacaoProjetada = PopulacaoAtual*5%"

Então, a "População Atual" é fixa, correto? Logo, total sempre vai ficar com o mesmo valor, ou seja, sempre vai ficar igual a 20000*5.  Mas o que você precisa é "armazenar essa atualização", e depois atualizar a partir desse novo valor.

 

 

 

Deveria ser algo como:

"PopulacaoProjetada = PopulacaoAtual" //ou seja, a projeção se inicia com o valor atual (2010)
"para cada um dos anos que quero calcular faça" //para 2011, 2012, 2013... até 2030
   "PopulacaoProjetada = PopulacaoProjetada + 5% da PopulacaoProjetada" //a população do ano será igual ao ano anterior + 5% da própria população do ano anterior.
   "Exibe a PopulacaoProjetada"

 

RESUMINDO:
Seu novo código me parece que está certo. A diferença para o que exemplifiquei acima, seria que  a variável pop (que seria a população projetada) seria atualizada diretamente. No seu código, primeiro está achando o valor (total), depois está atualizando a população... está bom também. Acho que não tem problemas.

PS:
Cuidado com a indentação. No Visualg, experimente pressionar CTRL+G, já dar uma reorganizada.

Ex.:

algoritmo "FCdH"
var
   cont: inteiro
   pop, tax, total : real
inicio
   pop<- 20000
   tax<- 0.05
   para cont de 2011 ate 2030 faca
      total<- pop*tax+pop
      pop<-total
      escreval ("Em", cont, " A população prevista é de: ",pop:2:0," Hab")
   fimpara
fimalgoritmo


Outra coisa, em vez de "A população", prefira "a população"... (não tem motivos para esse "A" maiúsculo").

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...