📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Linguagens de Programação. Recomendado revisar antes de começar.
v1.0 — Lógica de Programação, Estruturas Condicionais e Sintaxe Comparada
Trilha de Especialização Pedagógica — Projeto 1 de 4
- ➡️ v1 (este): Lógica Básica · Condicionais · I/O · 38 Linguagens de Programação
- v2: Estruturas de Repetição & Matrizes Multilinguagem
- v3: Programação Orientada a Objetos Comparada
- v4: Concorrência & Multithreading Comparado
🎓 Nível Profissional Simulado: Estagiário / Desenvolvedor Trainee. Um desenvolvedor versátil não fica preso a uma única linguagem: ele domina os conceitos universais de lógica (tipagem, I/O, condicionais encadeadas, ponto flutuante) e consegue transitar rapidamente entre qualquer ecossistema tecnológico.
—`
Implementar a Calculadora de Índice de Massa Corporal (IMC) seguindo as tabelas oficiais da Organização Mundial da Saúde (OMS) em 38 linguagens de programação diferentes, garantindo paridade total de regras de negócio, formatação de saída e tratamento de entradas.
—`
“Precisamos de um utilitário de terminal para nossos nutricionistas calcularem o IMC dos pacientes. O programa deve receber o peso em quilos e a altura em metros, calcular $IMC = \frac{peso}{altura^2}$, exibir o valor com 2 casas decimais e categorizar nas faixas: Abaixo do peso (< 18.5), Peso normal (18.5 a 24.9), Sobrepeso (25.0 a 29.9) e Obesidade (>= 30.0).”
| ID | Tipo | Descrição | Origem no Briefing |
|---|---|---|---|
| RF01 | Funcional | Receber peso ($kg$) e altura ($m$) como números de ponto flutuante. | “receber o peso e altura” |
| RF02 | Funcional | Calcular $IMC = peso / (altura * altura)$ com precisão decimal. | “calcular IMC” |
| RF03 | Funcional | Classificar o resultado nas 4 faixas oficiais da OMS. | “categorizar nas faixas” |
| RNF01 | Não-Funcional | Implementação em 38 linguagens mantendo exatamente o mesmo algoritmo. | Matriz Multilinguagem |
| RNF02 | Não-Funcional | Saída padronizada no console CLI. | Usabilidade CLI |
—`
| ID | User Story | Prioridade |
|---|---|---|
| US01 | Como nutricionista, quero digitar peso e altura e ver o IMC calculado com classificação. | Alta |
| US02 | Como estudante, quero comparar a sintaxe em C, Java, Go, Rust e Python lado a lado. | Alta |
—`
# Executar a versão em Python
python python/imc.py
# Compilar e executar a versão em C
gcc c/imc.c -o imc && ./imc
# Executar a versão em Rust
rustc rust/imc.rs && ./imc
—`
# python/imc.py
def calcular_imc(peso: float, altura: float) -> tuple[float, str]:
imc = peso / (altura ** 2)
if imc < 18.5:
classificacao = "Abaixo do peso"
elif imc < 25.0:
classificacao = "Peso normal"
elif imc < 30.0:
classificacao = "Sobrepeso"
else:
classificacao = "Obesidade"
return imc, classificacao
—`
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd multilang_imc_38
# Executar comandos específicos da tecnologia:
python main.py # ou npm run dev / ./gradlew build
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd proj_aplicacoes_full_stack/projetos/multilang_imc_38`
—`
Entrada: Peso = 70.0 kg, Altura = 1.75 m
Saída Esperada: IMC = 22.86 (Peso normal)
—`
- O cálculo de IMC está matematicamente correto em todas as 38 tecnologias.
- Classificação condicional cobre todos os casos de borda.
| ⬅️ Ver Todos os Projetos no Super-Hub | 🏠 Página Inicial do Portal |