Ir ao conteúdo
  • Cadastre-se
Rubens Schneider

VisualG Não consigo exibir informação no VisualG

Recommended Posts

Olá, montei o algoritmo para calcular o IMC, quando eu coloco "Peso 59" e "Altura 1.82" o resultado é "IMC 17.81". Deveria aparecer como resultado "Você está abaixo do peso, pede uma pizza aí!", mas o que aparece é "Muito bem, você está no peso ideal!".
Eu não estou entendendo onde errei, será que o Visualg tem algum erro?
Me ajudem por favor!!!
rsrs...
O código que fiz foi esse:

Algoritmo "imc"
Var
   nome: caracter
   kg, Altu, IMC: real
Inicio
   Escreval ("Olá, qual seu nome?")
   Leia (nome)
   Escreval ("Quanto você pesa ", nome, "?")
   Leia (kg)
   Escreval ("Quanto você tem de altura?")
   Leia (Altu)
   IMC<- Kg/ (Altu^2)
   Se (IMC < 17) então
      Escreval ("Muito abaixo do peso ",nome, ".")
   Senao Se (IMC >= 17) e (IMC < 18.5) entao
      Escreval (nome," Você está abaixo do peso, pede uma pizza aí!")
   Senao
      Se (IMC >= 18.5) e (IMC < 25) entao
         Escreval ("Muito bem ", nome, ", você está no peso ideal!")
      Senao
         Se (IMC >= 25) e (IMC < 30) entao
            Escreval ("Hora de pensar em um regime ", nome, ", você está com sobrepeso!")
         Senao
            Se (IMC >= 30) e (IMC < 35) entao
               Escreval ("Obesidade ", nome, ", é isso que você quer pra sua vida?")
            Senao
               Se (IMC >= 35) e (IMC < 40) entao
                  Escreval ("Obesidade severa, sinto muito ", nome)
               Senao
                  Escreval ("Obesidade mórbida", nome, ", aconselho que vá cuidar da sua saúde.")
               Fimse
            Fimse
         Fimse
      Fimse
   Fimse
Fimse
Escreval (nome,", O seu IMC é ", IMC:5:2, ".")
Fimalgoritmo

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Rubens Schneider     para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de postar ,  e seu código está certo  pois se IMC >= 17 quer dizer que se o imc for igual a 17 ou maior que 17 ele vai imprimir isso mesmo que está nessa opção .   porém no seu código existe um erro na linha 15  onde tem um   senao e logo em seguida na mesma linha tem um  se  e o visualg não emite nenhum erro por causa disso , mas na hora de rodar o código ele não executa o que vem depois do comando entao  na mesma linha e já passa para a linha de baixo , e com isso dá erro ,  então para resolver isso você pode mover esse   se   para a linha de baixo .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Vou tentar complementar:

 

1#

Sobre:

20 horas atrás, devair1010 disse:

porém no seu código existe um erro na linha 15  onde tem um   senao e logo em seguida na mesma linha tem um  se

 

No caso, a sintaxe do Visualg, por algum motivo (provavelmente técnico), meio que trabalha com "comandos completos por linha"... ou seja, não funciona bem com "dois ou mais comando na mesma linha", nem funciona com "um comando separado em várias linhas". O curioso é que um "pai", o Pascal, funciona. Em fim, um dos detalhes que já demonstram essa limitação é que no Visualg não tem "um 'comando' para finalizar a linha". Lá no pascal, por exemplo, utilizam-se o ";"... aqui, deve ser o "fim da linha mesma". Não entendo muito bem.

 

Alguns exemplo de "limitação do Visualg":

a )

var
   nome  :caracter
   kg,
   altu,
   IMC   :real

No Pascal essa separação por linhas funciona. No Visualg, não. Dá erro logo no kg.

 

 

b )

20 horas atrás, Rubens Schneider disse:

Senao Se (IMC >= 17) e (IMC < 18.5) entao

No Pascal essa "junção" funciona, mas no Visualg não.

 

Teria que fazer algo assim:

senao
   se (IMC >= 17) e (IMC < 18.5) entao

 

 

 

2#

Sobre:

20 horas atrás, Diogenes Ramos disse:

Tente colocar as conjunções entre parenteses, exemplo: ((a<b) e (b>c))

 

Nesse caso não precisa. Para o Visualg, a sintaxe das "expressões" lá do se estão corretas (tirando a questão se colocar na mesma linha), ou seja, não precisa de um () para estrutura do se em si.

 

Seria assim:

se RESULTADO_LÓGICO entao

Assim é facultativo (no caso: não necessário):

se (RESULTADO_LÓGICO) entao

 

 

Já entre os operadores lógicos precisa:

Assim não pode:

Se IMC >= 17 e IMC < 18.5 entao


E assim?:

Se (IMC >= 17 e IMC < 18.5) entao

Também não serve... perceba que esses () vão entrar na questão do "facultativo" lá de cima, logo, é equivalente a não ter parênteses, daí não vai funcionar!

 

 

 

3#

Sobre o erro em sim.

21 horas atrás, Rubens Schneider disse:

Olá, montei o algoritmo para calcular o IMC, quando eu coloco "Peso 59" e "Altura 1.82" o resultado é "IMC 17.81". Deveria aparecer como resultado "Você está abaixo do peso, pede uma pizza aí!", mas o que aparece é "Muito bem, você está no peso ideal!".
Eu não estou entendendo onde errei, será que o Visualg tem algum erro?

 

Então, qual versão do Visualg está utilizando? tem como postar o print da tela com o resultado?

 

Se está retornando "Muito bem, você está no peso ideal!", alguma outra coisa estranha pode está acontecendo... pode ser algum outro problema. Ou o código fonte está bugado (algum caractere oculto); ou a versão do Visualg está bugada... ou alguma outra coisa... Em fim.. pelo que o eu vi, esse erro, citado por @devair1010, compromete o código todo... pois o se "deixa de existir" e acaba ficando com o fimse a mais.

 

De um modo geral, recomendo utilizar a versão 3.0.6.5. Tem uma mais nova, acho que 3.0.7.0, mas não recomendo.

 

 

***

 

No aguardo.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×