⚠️ Novidade no blog! ⚠️

O conteúdo dos Cursos, Trilhas e Livros Resolvidos está sendo movido para kdosh.net/edu. Acesse e divulgue!


🔴 Problema

Desenvolva um algoritmo em Python para determinar o Índice de Massa Corporal (IMC) de uma pessoa.

Para fazer o cálculo do IMC basta dividir seu peso em quilogramas  (Kg) pela altura ao quadrado (em metros).

O número que será gerado deve ser comparado aos valores da tabela IMC, dada abaixo, para definir se você está abaixo, em seu peso ideal ou acima do peso.

IMC Classificação
< 16 Magreza grave
16 a < 17 Magreza moderada
17 a < 18,5 Magreza leve
18,5 a < 25 Saudável
25 a < 30 Sobrepeso
30 a < 35 Obesidade Grau I
35 a < 40 Obesidade Grau II (severa)
≥ 40 Obesidade Grau III (mórbida)

🔴 Script Python

🔴 Saída

🔴 Utilizando a biblioteca “Tk interface” (tkinter)

Caso você queira utilizar uma interface gráfica, um código possível seria:

🔴 O que é o Índice de Massa Corporal (IMC)?

O Índice de Massa Corporal (IMC) é uma medida utilizada para avaliar o nível de gordura corporal de uma pessoa. Ele é calculado dividindo o peso (em quilogramas) pelo quadrado da altura (em metros).

Os valores de referência para o IMC são:

IMC Classificação
< 16 Magreza grave
16 a < 17 Magreza moderada
17 a < 18,5 Magreza leve
18,5 a < 25 Saudável
25 a < 30 Sobrepeso
30 a < 35 Obesidade Grau I
35 a < 40 Obesidade Grau II (severa)
≥ 40 Obesidade Grau III (mórbida)

Por exemplo, uma pessoa que pesa 70 kg e tem 1,75 m de altura teria um IMC de 70 / (1,75 x 1,75) = 22,86, estaria dentro do intervalo de peso saudável.

O Índice de Massa Corporal (IMC) é considerado uma medida de rastreamento útil para avaliar o risco de doenças relacionadas ao peso, pois é fácil de ser calculado e não requer equipamentos sofisticados.

Pessoas com IMC elevado podem ter maior risco de doenças crônicas, como diabetes tipo 2, hipertensão, doenças cardíacas e derrames cerebrais. Além disso, a obesidade está associada a um maior risco de alguns tipos de câncer.

No entanto, é importante lembrar que o IMC não é uma medida precisa da gordura corporal e pode não ser aplicável a todas as pessoas, como atletas e idosos. Por isso, é importante que o IMC seja avaliado em conjunto com outros fatores de risco de doenças, como histórico familiar, níveis de atividade física, hábitos alimentares e resultados de exames laboratoriais.

🔴 Versões desse programa em outras linguagens

Portugol (VisuAlg)

Linguagem C

Java

Dart

JavaScript

📚 Livros

    • Algoritmos: Lógica para Desenvolvimento de Programação de Computadores
      José Augusto N. G. Manzano e Jayr Figueiredo de Oliveira
      <https://amzn.to/43sGKic>

 


Deixe suas dúvidas e sugestões logo abaixo.

*Atualizado em 27 de julho de 2023

Estude a Bíblia!
Subscribe
Notify of
guest
19 Comentários
Inline Feedbacks
View all comments
liedson
liedson
3 de abril de 2023 11:17

me ensina

jose texas
jose texas
17 de novembro de 2022 18:48

escrevi o programa como testar se esta tudo certo:
? onde coloco os valores? to perdido comecei hoje exigencia da afaculdade kkk

Driss
29 de julho de 2022 00:11

eu fiz o meu assim(Lembrando que eu to começando agr e nem aprende o if ,else,elif e os crlh

print(‘Calculo do IMC’)
peso = float(input(‘Digite seu peso:’))
altura =float(input(‘Digite sua altura:’))
imc = peso / (altura**2)
if imc == (18.5 and 25):
print(f'{imc:.2f} Você esta no peso ideal’)
if imc 18.5 and 25:
print(f'{imc:.2f} Você está acima do peso’)
exit()

Bruno Ribeiro Mariano
Bruno Ribeiro Mariano
23 de junho de 2022 18:05

Peso = float(input(‘Digite o peso: ‘))
Altura = float(input(‘Digite a altura: ‘))
Imc = Peso / (Altura ** 2)
if Imc = 18.5 and Imc = 25 and Imc <= 29.99:
print('Voce esta acima do peso')
else:
print('Voce esta obesa')

Dayvth Olliver
Dayvth Olliver
10 de março de 2022 01:12

#Fiz o meu assim:
print(‘\033[33m=-=\033[m’ * 8)
print(‘ \033[1:36m CAUCULADORA DE IMC\033[1:36m’)
print(‘\033[33m=-=\033[m’ * 8)
from time import sleep
nome = input(‘Qual o seu primeiro nome?’)
peso = float(input(‘Olá {}, digite seu peso nesse formato:(em Kg, Ex: 68.9):’.format(nome)))
altura = float(input(‘Agora sua digite sua Altura (em m, Ex: 1.80): ‘))
print(‘Só um momento enquanto faço o cálculo…’)
sleep(2)
media = peso / altura**2
if media <= 18.5:
print('Seu \033[1:36mIMC é {:.1f}\033[m, e você está abaixo do peso ideal.'.format(media))
elif media 18.5:
print(‘Seu \033[1:36mIMC é {:.1f}\033[m, e você está com o peso Ideal.’.format(media))
elif media 25.0:
print(‘Seu \033[1:36mIMC é {:.1f}\033[m, e você está com sobrepeso.’.format(media))
elif media 30.0:
print(‘Seu \033[1:36mIMC é {:.1f}\033[m, e você está Obeso.’.format(media))
else:
print(‘Seu \033[1:36mIMC é {:.1f}\033[m, e você está com obesidade mórbida.’.format(media))

Gabriel Teixeira
Gabriel Teixeira
3 de janeiro de 2022 13:14

“””Calculadora de IMC”””

height = float(input(“Qual a sua altura? “))
weight = float(input(“Qual é o seu peso? “))
media = (weight / (height * 2))

if media = 18.6 and media = 25.0 and media = 30.0 and media = 35.0 and media <= 39.9:
print('Você está com obesidade grau II (severa)')
else:
print('Você está com obesidade grau III (mórbida)')

Mario
Mario
21 de agosto de 2022 15:57

Não seria assim?

print(‘Vamos calcular seu IMC’)
nome = input(‘Digite o seu nome: ‘)
peso = float(input(‘Olá, {}, agora digite seu peso (em Kg, Ex: 68.9): ‘ .format(nome)))
altura = float(input(‘Digite sua altura (em m, Ex: 1.80): ‘))

media = peso / (altura * altura)
print(‘Seu IMC é: {:.1f}’.format(media))
if media <= 18.5 and media <=25.0 and media <=30.0 and media <=35.0 and media <=39.9:
print('Você está com obesidade grau II (severa)')
else:
print('Você está com obesidade grau III (mórbida)')

Gabriel Teixeira
Gabriel Teixeira
3 de janeiro de 2022 13:17

Esta meio bugado neste comentário mas eu fiz o mesmo exercício que você colocou e subi no meu GitHub.

estruturas-lógicas-e-condicionais/41.Calculadora de IMC.py

Bruno
Bruno
9 de agosto de 2021 22:53

//Acho que é isso

print(“Vamos calcular seu IMC?”)
nome = input(“Digite o seu nome: “)
peso = float(input(“Olá, {}, agora digite seu peso (em Kg, Ex: 68.9): ” .format(nome)))
altura = float(input(“Digite sua altura (em m, Ex: 1.80): “))

media = peso / (altura * altura)
print(‘Seu IMC é: {:.1f}’.format(media))
if media = 18.5 and media =25.0 and media=30.0 and media=35.0 and media<=39.9:
print("Obesidade Grau 2")
else:
print("Obesidade grau 3(mórbida)")

Bruno
Bruno
9 de agosto de 2021 22:54
Reply to  Bruno

print(“Vamos calcular seu IMC?”)
nome = input(“Digite o seu nome: “)
peso = float(input(“Olá, {}, agora digite seu peso (em Kg, Ex: 68.9): ” .format(nome)))
altura = float(input(“Digite sua altura (em m, Ex: 1.80): “))

media = peso / (altura * altura)
print(‘Seu IMC é: {:.1f}’.format(media))
if media = 18.5 and media =25.0 and media=30.0 and media=35.0 and media<=39.9:
print("Obesidade Grau 2")
else:
print("Obesidade grau 3(mórbida)")

NILBER
NILBER
15 de maio de 2021 22:01

Boa noite!…Estou com dificuldades em calcular o imc em python pq peso e alturas estão em um dicionário

Wilson Fernandes dos Santos
Wilson Fernandes dos Santos
2 de abril de 2020 16:30

Olá, e caso eu queira trazer uma resposta baseada num intervalo de valor, por exemplo.
Entre 14 e 18.5 magro
Entre 18,9 e 25 saudavel
Entre 25.1 e 29,9 sobrepeso
E a sim por diante, como que eu poderia fazer ?
Obrigado.

Bruno Ribeiro Mariano
Bruno Ribeiro Mariano
23 de junho de 2022 18:03

Peso = float(input(‘Digite o peso: ‘))
Altura = float(input(‘Digite a altura: ‘))
Imc = Peso / (Altura ** 2)
if Imc = 18.5 and Imc = 25 and Imc <= 29.99:
print('Voce esta acima do peso')
else:
print('Voce esta obesa')

Bruno
Bruno
9 de agosto de 2021 22:52

//Fiz Assim, espero que seja o que você procura.

print(“Vamos calcular seu IMC?”)
nome = input(“Digite o seu nome: “)
peso = float(input(“Olá, {}, agora digite seu peso (em Kg, Ex: 68.9): ” .format(nome)))
altura = float(input(“Digite sua altura (em m, Ex: 1.80): “))

media = peso / (altura * altura)
print(‘Seu IMC é: {:.1f}’.format(media))
if media = 18.5 and media =25.0 and media=30.0 and media=35.0 and media<=39.9:
print("Obesidade Grau 2")
else:
print("Obesidade grau 3(mórbida)")

Guilherme Albino de Andrade
Guilherme Albino de Andrade
29 de agosto de 2020 10:53

Por exemplo:
if (imc >= 18,5) and (imc <= 29,9):

print (nome, "está no seu peso ideal!")

DreizZy
DreizZy
28 de junho de 2020 10:09

Fiz um +/- com o que você está a falar, porem add uma var de idade, consoante a idade o imc será adaptado
https://gist.github.com/Dreizzy27/bf9c6c545ba5a72174350315230b2829

luis
luis
14 de abril de 2020 09:51

como assim ? especifique mais q talvez eu consiga te ajudar