Se você gosta de saúde e tecnologia, pode criar seu próprio calculador de IMC em C++. O IMC usa a relação peso/altura e, às vezes, idade e sexo. Segundo a Weight-control Information Network, IMC alto aumenta risco de certos cânceres, doenças cardíacas, vesícula biliar, artrose e complicações na gravidez. IMC saudável: 18,5–24,9; sobrepeso: 25–29,9; obesidade: ≥30.
O código abaixo é uma aplicação completa com interface gráfica (Windows Forms) que calcula IMC e classifica o resultado. Ele aceita entrada em libras/kg e polegadas/metros.
// Código C++ (Windows Forms) - Linhas 1 a 59
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace BMIApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnCalculate_Click(object sender, EventArgs e)
{
double weight = string.IsNullOrEmpty(txtWeight.Text) ? 1 : double.Parse(txtWeight.Text);
double height = string.IsNullOrEmpty(txtHeight.Text) ? 1 : double.Parse(txtHeight.Text);
if (weight == 0)
{
MessageBox.Show("Resultado impreciso. Peso não é um número válido.");
}
if (height == 0)
{
MessageBox.Show("Resultado impreciso. Altura não é um número válido.");
}
double vmult = cboWeightUnits.SelectedItem.ToString() == "pounds" ? 2.204 : 1;
double hmult = cboHeightUnits.SelectedItem.ToString() == "inches" ? 0.0254 : 1;
double BMI = Math.Round(((weight / vmult) / ((height * hmult) * (height * hmult))) * 10) / 10;
string BMI_description = string.Empty;
if (BMI < 16.5)
BMI_description = "muito abaixo do peso";
else if (BMI >= 16.5 && BMI < 18.5)
BMI_description = "abaixo do peso";
else if (BMI >= 18.5 && BMI < 25)
BMI_description = "normal";
else if (BMI >= 25 && BMI <= 30)
BMI_description = "sobrepeso";
else if (BMI > 30 && BMI <= 35)
BMI_description = "obeso";
else if (BMI > 35 && BMI <= 40)
BMI_description = "obesidade severa";
else
BMI_description = "obesidade mórbida";
txtResult.Text = string.Format("Seu Índice de Massa Corporal (IMC) é: {0}. Isso é considerado {1}.", BMI, BMI_description);
}
}
}
Dica: Para versões console mais simples (sem interface gráfica), a lógica matemática central é a mesma: IMC = peso_kg / (altura_m * altura_m).