0% acharam este documento útil (0 voto)
60 visualizações4 páginas

Python

Enviado por

Joaquim Morais
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
60 visualizações4 páginas

Python

Enviado por

Joaquim Morais
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

import tkinter as tk

from tkinter import messagebox

import matplotlib

matplotlib.use("TkAgg") # Essencial para o Matplotlib funcionar corretamente com o Tkinter

import matplotlib.pyplot as plt

# Função para calcular o IMC dado o peso e a altura

def calcular_imc(peso, altura):

return peso / (altura ** 2)

# Função para classificar o IMC e fornecer recomendações

def classificar_imc(imc):

if imc < 18.5:

return "Abaixo do peso", "Aumente a ingestão calórica com alimentos saudáveis."

elif 18.5 <= imc < 24.9:

return "Peso normal", "Mantenha uma dieta equilibrada e continue se exercitando."

elif 25 <= imc < 29.9:

return "Sobrepeso", "Adote uma dieta balanceada e aumente a atividade física."

elif 30 <= imc < 34.9:

return "Obesidade grau I", "Consulte um nutricionista e inicie um programa de exercícios."

elif 35 <= imc < 39.9:

return "Obesidade grau II", "Procure ajuda médica para um plano de perda de peso."

else:

return "Obesidade grau III", "Intervenção médica urgente é necessária."

# Função para alertar sobre os perigos relacionados ao IMC

def alertar_sobre_perigos(imc):

if imc < 18.5:


return "Perigo: Pode causar deficiências nutricionais, osteoporose e problemas
imunológicos."

elif 25 <= imc < 29.9:

return "Perigo: Pode levar a doenças cardíacas, diabetes tipo 2 e hipertensão."

elif 30 <= imc < 34.9:

return "Perigo: Aumenta o risco de doenças cardíacas, diabetes tipo 2 e outras condições."

elif 35 <= imc < 39.9:

return "Perigo: Alto risco de doenças graves, como doenças cardíacas, diabetes e
hipertensão."

else:

return "Perigo: Muito alto risco de doenças graves e complicações de saúde."

# Função para plotar um gráfico de barras com a classificação do IMC

def plotar_grafico(imc):

categorias = ["Abaixo do peso", "Peso normal", "Sobrepeso", "Obesidade grau I", "Obesidade
grau II",

"Obesidade grau III"]

valores = [18.5, 24.9, 29.9, 34.9, 39.9, 50]

plt.figure(figsize=(10, 6))

plt.bar(categorias, valores, color=["blue", "green", "yellow", "orange", "red", "darkred"])

plt.axhline(y=imc, color='black', linestyle='--', label=f'Seu IMC: {imc:.2f}')

plt.xlabel("Categorias de IMC")

plt.ylabel("Valores de IMC")

plt.title("Classificação de IMC")

plt.legend()

plt.show()

# Função para calcular o IMC e exibir resultados e gráficos

def calcular():

try:
peso = float(entry_peso.get()) # Obter o peso do input do usuário

altura = float(entry_altura.get()) # Obter a altura do input do usuário

imc = calcular_imc(peso, altura) # Calcular o IMC

classificacao, recomendacao = classificar_imc(imc) # Classificar o IMC e obter


recomendações

perigo = alertar_sobre_perigos(imc) # Obter alertas sobre perigos

# Exibir resultados em uma caixa de mensagem

resultado = f"Seu IMC é: {imc:.2f}\nClassificação: {classificacao}\nRecomendação:


{recomendacao}\nPerigo relacionado: {perigo}"

messagebox.showinfo("Resultado do IMC", resultado)

# Plotar o gráfico de barras com a classificação do IMC

plotar_grafico(imc)

except ValueError:

messagebox.showerror("Erro de entrada", "Por favor, insira valores válidos para peso e


altura.")

# Criar a interface gráfica com tkinter

root = tk.Tk()

root.title("Calculadora de IMC")

# Criar labels e campos de entrada para peso e altura

tk.Label(root, text="Peso (kg):").grid(row=0, column=0, padx=10, pady=10)

entry_peso = tk.Entry(root)

entry_peso.grid(row=0, column=1, padx=10, pady=10)

tk.Label(root, text="Altura (m):").grid(row=1, column=0, padx=10, pady=10)

entry_altura = tk.Entry(root)

entry_altura.grid(row=1, column=1, padx=10, pady=10)


# Criar botão para calcular o IMC

btn_calcular = tk.Button(root, text="Calcular IMC", command=calcular)

btn_calcular.grid(row=2, column=0, columnspan=2, pady=20)

# Iniciar o loop principal da interface gráfica

root.mainloop()

Você também pode gostar