🧓 Guía práctica: COBOL desde cero + ejercicios + simulador de nómina
🖥️ Instalación de GnuCOBOL
- Windows: Descargar desde SourceForge
- Linux:
sudo apt install open-cobol
- macOS:
brew install gnu-cobol
Verificá la instalación con:
cobc -v
📁 Tu primer programa COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. HOLA-MUNDO.
PROCEDURE DIVISION.
DISPLAY "¡Hola desde COBOL!".
STOP RUN.
Compilar: cobc -x hola.cbl
Ejecutar: ./hola
🧪 Ejercicios guiados
Ejercicio 1: Mostrar nombre y edad
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NOMBRE PIC A(20) VALUE "JUAN".
01 EDAD PIC 99 VALUE 30.
PROCEDURE DIVISION.
DISPLAY "Nombre: " NOMBRE.
DISPLAY "Edad: " EDAD.
STOP RUN.
Ejercicio 2: Sumar dos números
WORKING-STORAGE SECTION.
01 NUM1 PIC 9(3) VALUE 100.
01 NUM2 PIC 9(3) VALUE 250.
01 RESULTADO PIC 9(4).
PROCEDURE DIVISION.
COMPUTE RESULTADO = NUM1 + NUM2.
DISPLAY "Resultado: " RESULTADO.
STOP RUN.
Ejercicio 3: Validar edad
WORKING-STORAGE SECTION.
01 EDAD PIC 99 VALUE 17.
PROCEDURE DIVISION.
IF EDAD >= 18
DISPLAY "Mayor de edad"
ELSE
DISPLAY "Menor de edad"
END-IF.
STOP RUN.
💼 Simulador de nómina en COBOL
Objetivo: Calcular salario neto de empleados.
Archivo de entrada (empleados.txt)
JUAN PEREZ 15000.00 2000.00 1500.00
ANA GOMEZ 18000.00 2500.00 1800.00
Programa COBOL
IDENTIFICATION DIVISION.
PROGRAM-ID. NOMINA.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT EMPLEADOS ASSIGN TO "empleados.txt".
SELECT REPORTE ASSIGN TO "reporte.txt".
DATA DIVISION.
FILE SECTION.
FD EMPLEADOS.
01 REG-EMP.
05 NOMBRE PIC A(30).
05 SUELDO-BRUTO PIC 9(5)V99.
05 BONIFICACION PIC 9(4)V99.
05 DESCUENTO PIC 9(4)V99.
FD REPORTE.
01 REG-REP.
05 REP-NOMBRE PIC A(30).
05 SALARIO-NETO PIC 9(6)V99.
WORKING-STORAGE SECTION.
01 SALARIO-NETO PIC 9(6)V99.
01 EOF-FLAG PIC X VALUE 'N'.
88 FIN-ARCHIVO VALUE 'S'.
88 MAS-REGISTROS VALUE 'N'.
PROCEDURE DIVISION.
OPEN INPUT EMPLEADOS
OUTPUT REPORTE
PERFORM UNTIL FIN-ARCHIVO
READ EMPLEADOS
AT END
SET FIN-ARCHIVO TO TRUE
NOT AT END
COMPUTE SALARIO-NETO = SUELDO-BRUTO + BONIFICACION - DESCUENTO
MOVE NOMBRE TO REP-NOMBRE
MOVE SALARIO-NETO TO SALARIO-NETO
WRITE REG-REP
END-READ
END-PERFORM
CLOSE EMPLEADOS
REPORTE
STOP RUN.
Compilar: cobc -x nomina.cbl
Ejecutar: ./nomina
📊 ¿Qué sigue?
- Agregar impuestos y categorías salariales
- Generar reportes por departamento
- Integrar con DB2 o exportar a CSV
- Automatizar con JCL en entornos mainframe