EXERCÍCIO 01: Praticando a Base

 [DESAFIO] Exercícios REXX: Sua Hora de Brilhar!
Consolidando aulas 01-03 com problemas reais do mainframe

🎯 DESAFIO 1: Calculadora de IMC

rexx
/* 
OBJETIVO: Criar calculadora de IMC
ENTRADA: Peso (kg) e Altura (m)
SAÍDA: IMC e classificação

Classificação:
- Abaixo de 18.5: Abaixo do peso
- 18.5 a 24.9: Normal
- 25 a 29.9: Sobrepeso
- Acima de 30: Obesidade

DICA: Use SAY, PULL e IF/ELSE
*/

🎯 DESAFIO 2: Validador de Dataset Name

rexx
/*
OBJETIVO: Validar nomes de dataset
REGRAS:
1. Máximo 44 caracteres
2. Deve começar com letra
3. Partes separadas por ponto
4. Cada parte: 1-8 caracteres
5. Caracteres válidos: A-Z, 0-9, @#$ (apenas no primeiro caractere da parte)

EXEMPLOS VÁLIDOS:
- USER.DATA01
- PROJ#.TEST.COBOL

DICA: Use LENGTH, SUBSTR, DATATYPE
*/

🎯 DESAFIO 3: Formatador de Data Mainframe

rexx
/*
OBJETIVO: Converter data do mainframe
ENTRADA: "DDMMYYYY" (ex: "15032024")
SAÍDA: "15/MAR/2024"

MESES: 01=JAN, 02=FEV, ..., 12=DEZ

EXTRA: Validar se data é válida
- Dia: 01-31
- Mês: 01-12
- Ano: 1900-2100

DICA: Use SUBSTR para separar partes
*/
💡 SOLUÇÃO do Desafio 1 (após tentativa):
rexx
/* SOLUCAO_IMC.rex */
SAY '=== CALCULADORA IMC ==='
SAY 'Digite seu peso (kg):'
PULL peso
SAY 'Digite sua altura (m):'
PULL altura

imc = peso / (altura * altura)
SAY 'Seu IMC é:' FORMAT(imc, , 2)  /* 2 casas decimais */

SELECT
  WHEN imc < 18.5 THEN classificacao = 'Abaixo do peso'
  WHEN imc <= 24.9 THEN classificacao = 'Peso normal'
  WHEN imc <= 29.9 THEN classificacao = 'Sobrepeso'
  OTHERWISE classificacao = 'Obesidade'
END

SAY 'Classificação:' classificacao
SAY '========================'

CTA: 💬 Poste sua solução nos comentários e ajude outros alunos!