Atividade - IMC
- Escrever um programa que leia o peso e a altura de uma pessoa e calcule seu índice de massa corporal (IMC) de acordo com a fórmula:
- O programa deve classificar uma pessoa de acordo com o IMC, nas seguintes faixas:
Menor que 18,5 - Abaixo do peso
Entre 18,5 e 25,0 - Peso normal
Entre 25,0 e 30,0 - Pré-obesidade
Entre 30,0 e 35,0 - Obesidade Grau 1
Entre 35,0 e 40,0 - Obesidade Grau 2
Acima de 40 - Obesidade Grau 3
- As faixas de IMC indicadas previamente são para pessoas (mulheres e homens) acima de 20 anos
- Para adolescentes (entre 10 e 20 anos) as faixas são diferentes para homens e mulheres
- Para homens:
Idade
Baixo Peso
Adequado
Sobrepeso
10
< 14,42
entre 14,42 e 19,60
>=19,60
11
< 14,83
entre 14,83 e 20,35
>= 20,35
12
< 15,24
entre 15,24 e 21,12
>= 21,12
13
< 15,73
entre 15,73 e 21,93
>= 21,93
14
<16,18
entre 16,18 e 22,77
>= 22,77
15
< 16,59
entre 16,59 e 23,63
>= 23,63
16
<17,01
entre 17,01 e 24,45
>=24,45
17
<17,31
entre 17,31 e 25,28
>=25,28
18
< 17,54
entre 17,54 e 25,95
>= 25,95
19
<17,80
entre 17,80 e 26,36
>=26,36
- As faixas de IMC indicadas previamente são para pessoas (mulheres e homens) acima de 20 anos
- Para adolescentes (entre 10 e 20 anos) as faixas são diferentes para homens e mulheres
- Para mulheres:
Idade
Baixo Peso
Adequado
Sobrepeso
10
<14,23
entre 14,23 e 20,19
>= 20,19
11
< 14,60
entre 14,60 e 21,18
>= 21,18
12
< 14,98
entre 14,98 e 22,17
>= 22,17
13
< 15,36
entre 15,36 e 23,08
>= 23,08
14
< 15,67
entre 15,67 e 23,88
>= 23,88
15
< 16,01
entre 16,01 e 24,29
>= 24,29
16
<16,37
entre 16,37 e 24,74
>= 24,74
17
< 16,59
entre 16,59 e 25,23
>= 25,23
18
< 16,71
entre 16,71 e 25,56
>= 25,56
19
<16,87
entre 16,87 e 25,85
>= 25,85
Entre 18,5 e 25,0 - Peso normal
Entre 25,0 e 30,0 - Pré-obesidade
Entre 30,0 e 35,0 - Obesidade Grau 1
Entre 35,0 e 40,0 - Obesidade Grau 2
Acima de 40 - Obesidade Grau 3
Idade | Baixo Peso | Adequado | Sobrepeso |
10 | < 14,42 | entre 14,42 e 19,60 | >=19,60 |
11 | < 14,83 | entre 14,83 e 20,35 | >= 20,35 |
12 | < 15,24 | entre 15,24 e 21,12 | >= 21,12 |
13 | < 15,73 | entre 15,73 e 21,93 | >= 21,93 |
14 | <16,18 | entre 16,18 e 22,77 | >= 22,77 |
15 | < 16,59 | entre 16,59 e 23,63 | >= 23,63 |
16 | <17,01 | entre 17,01 e 24,45 | >=24,45 |
17 | <17,31 | entre 17,31 e 25,28 | >=25,28 |
18 | < 17,54 | entre 17,54 e 25,95 | >= 25,95 |
19 | <17,80 | entre 17,80 e 26,36 | >=26,36 |
Idade | Baixo Peso | Adequado | Sobrepeso |
10 | <14,23 | entre 14,23 e 20,19 | >= 20,19 |
11 | < 14,60 | entre 14,60 e 21,18 | >= 21,18 |
12 | < 14,98 | entre 14,98 e 22,17 | >= 22,17 |
13 | < 15,36 | entre 15,36 e 23,08 | >= 23,08 |
14 | < 15,67 | entre 15,67 e 23,88 | >= 23,88 |
15 | < 16,01 | entre 16,01 e 24,29 | >= 24,29 |
16 | <16,37 | entre 16,37 e 24,74 | >= 24,74 |
17 | < 16,59 | entre 16,59 e 25,23 | >= 25,23 |
18 | < 16,71 | entre 16,71 e 25,56 | >= 25,56 |
19 | <16,87 | entre 16,87 e 25,85 | >= 25,85 |
Passo 1
O enunciado pede um programa que leia peso, altura, idade e sexo de uma pessoa, calcule o índice de massa corporal (IMC) usando a fórmula e depois classifique essa pessoa em faixas diferentes conforme a idade (adulto ou adolescente) e, no caso de adolescente, conforme o sexo. Para resolver precisamos saber:
- Como ler variáveis de entrada (peso, altura, idade, sexo).
- Como calcular o IMC com a fórmula
- Como usar estruturas condicionais para comparar o IMC com os limiares, que variam segundo a idade e o sexo.
Passo 2
Calcular o IMC imediatamente após ler peso e altura:
Armazene esse valor numa variável, por exemplo,
imc
.Passo 3
Verificar se a pessoa é adulta (idade acima de 20 anos). Se for, usar as faixas fixas:
-
→ “Abaixo do peso” -
→ “Peso normal” -
→ “Pré-obesidade” -
→ “Obesidade Grau 1” -
→ “Obesidade Grau 2” -
→ “Obesidade Grau 3”
Passo 4
Se a pessoa tiver idade entre 10 e 20 anos, testar primeiro o sexo.
Para sexo masculino, use a tabela de limiares conforme a idade (10–19). Por exemplo, para idade :
Para sexo masculino, use a tabela de limiares conforme a idade (10–19). Por exemplo, para idade
-
→ “Baixo peso” -
→ “Adequado” -
→ “Sobrepeso”
E assim por diante para cada valor de idade de 10 a 19.
Passo 5
Para sexo feminino, usar a outra tabela de limiares. Por exemplo, para idade
:
-
→ “Baixo peso” -
→ “Adequado” -
→ “Sobrepeso”
E seguir a tabela completa de 10 a 19 anos.
Passo 6
Implementar tudo em um programa. Abaixo está um exemplo em Python, mas pode ser adaptado a qualquer linguagem:
# Leitura dos dados
peso = float(input("Peso (kg): "))
altura = float(input("Altura (m): "))
idade = int(input("Idade (anos): "))
sexo = input("Sexo (M/F): ").strip().upper()
# Cálculo do IMC
imc = peso / (altura ** 2)
# Função auxiliar para tabelas de adolescentes
def \(classifica_adolescente\)(sexo, idade, imc):
# Dicionários de tuplas (baixo, alto) para cada idade
tabelas = {
'M': {
10: (14.42, 19.60), 11: (14.83, 20.35), 12: (15.24, 21.12),
13: (15.73, 21.93), 14: (16.18, 22.77), 15: (16.59, 23.63),
16: (17.01, 24.45), 17: (17.31, 25.28), 18: (17.54, 25.95),
19: (17.80, 26.36)
},
'F': {
10: (14.23, 20.19), 11: (14.60, 21.18), 12: (14.98, 22.17),
13: (15.36, 23.08), 14: (15.67, 23.88), 15: (16.01, 24.29),
16: (16.37, 24.74), 17: (16.59, 25.23), 18: (16.71, 25.56),
19: (16.87, 25.85)
}
}
if idade not in tabelas[sexo]:
return None
baixo, alto = tabelas[sexo][idade]
if imc < baixo:
return "Baixo peso"
if imc <= alto:
return "Adequado"
return "Sobrepeso"
# Classificação final
if idade > 20:
if imc < 18.5:
classificacao = "Abaixo do peso"
elif imc < 25.0:
classificacao = "Peso normal"
elif imc < 30.0:
classificacao = "Pré-obesidade"
elif imc < 35.0:
classificacao = "Obesidade Grau 1"
elif imc < 40.0:
classificacao = "Obesidade Grau 2"
else:
classificacao = "Obesidade Grau 3"
elif 10 <= idade <\(=20\):
classificacao = \(classifica_adolescente\)(sexo, idade, imc)
if classificacao is None:
classificacao = "Idade inválida para tabela de adolescente"
else:
classificacao = "Idade abaixo de 10 anos não suportada"
print(f"IMC = {imc:.2f} → {classificacao}")
Resposta
O código acima implementa todos os requisitos: lê peso, altura, idade e sexo; calcula o IMC; e faz a classificação para adultos e adolescentes segundo as tabelas fornecidas.