Ir ao conteúdo
  • Cadastre-se

Duvida, programaçao


pablofoz

Posts recomendados

Bom eu queria fazer uma função que calcula o imc e diz se você esta com o peso ideal ou nao.

Meu problema é que sempre q o imc da mais que 17.1 ele diz estar Abaixo do peso.

Alguem pode me ajudar? Estou usando o Pascalzim, obrigado!

Program IMC ;

{ae(peso,altura)as(imc)}

var

peso,altura,imc:real;

Begin

read(peso,altura);

imc:=(peso)/(altura*altura);

write(imc);

if (imc <= 17 ) then

writeln(' Muito abaixo do peso')

else

if (imc >= 17.1) or (imc <= 18.49 ) then

writeln(' Abaixo do peso')

else

if (imc >= 18.5) or (imc <= 24.99 ) then

writeln(' Peso normal')

else

if (imc >= 25) or (imc <= 29.99 ) then

writeln('Acima do peso')

else

if (imc >= 30) or (imc <= 34.99 ) then

writeln(' Obesidade I')

else

if (imc >= 35) or (imc <= 39.99 ) then

writeln(' Obesidade II')

else

if (imc <= 40 ) then

writeln(' Obesidade III')

End.

Link para o comentário
Compartilhar em outros sites

pablofoz,

O problema aí é o operador lógico or sendo usado nesse caso.

A condição que deve ser atendida é a que sempre que o imc for maior ou igual ao valor x E (e não OU) menor ou igual ao valor y, o resultado correspondente seja apresentado. Ou seja, um intervalo de valores é definido.

Então, troque o or por and nas condições.

E outra, se Obesidade III corresponde a um IMC maior ou igual a 40, então aquele "if (imc <= 40 ) then" tem que ser retirado dali.

NW

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Bom eu queria fazer uma função que calcula o imc e diz se você esta com o peso ideal ou nao.

Meu problema é que sempre q o imc da mais que 17.1 ele diz estar Abaixo do peso.

Alguem pode me ajudar? Estou usando o Pascalzim, obrigado!

Program IMC ;

{ae(peso,altura)as(imc)}

var

peso,altura,imc:real;

Begin

read(peso,altura);

imc:=(peso)/(altura*altura);

write(imc);

if (imc <= 17 ) then

writeln(' Muito abaixo do peso')

else

if (imc >= 17.1) or (imc <= 18.49 ) then

writeln(' Abaixo do peso')

else

if (imc >= 18.5) or (imc <= 24.99 ) then

writeln(' Peso normal')

else

if (imc >= 25) or (imc <= 29.99 ) then

writeln('Acima do peso')

else

if (imc >= 30) or (imc <= 34.99 ) then

writeln(' Obesidade I')

else

if (imc >= 35) or (imc <= 39.99 ) then

writeln(' Obesidade II')

else

if (imc <= 40 ) then

writeln(' Obesidade III')

End.

Olá, vamos lá:

1) Peso x Massa

Existe uma diferença entre eles (se tiver dúvidas, pesquise). No imc (Índice de "Massa" Corporal) usa a "massa" corporal, e não o peso. Na prática você pode solicitar o "peso da pessoa" mesmo, já que é "popular" (mas errado). Tecnicamente será a massa. (massa => kg, peso => N);

2) And x Or

And = "e", Or = "ou". Logo...

O IMC possui faixas... algumas delas possuem valores entre um "E" outro, e não entre um "ou" outro.

3) Diferentes tabelas

Creio eu que existem várias tabelas "oficiais" para o IMC... acho que de acordo com a idade. Pesquise algo relacionado a Organização Mundial de Saúde (OMS).

***

Qualquer dúvida é só postar

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...