En este tema, aprenderemos sobre los constructos de bucle en COBOL, que son fundamentales para ejecutar un bloque de código repetidamente. Los bucles son esenciales para tareas como iterar sobre una lista de elementos, procesar registros de un archivo, o realizar cálculos repetitivos.
Contenido
Introducción a los Bucles
En COBOL, los bucles se implementan principalmente utilizando la sentencia PERFORM
. Existen varias formas de utilizar PERFORM
para crear bucles, cada una adecuada para diferentes situaciones.
Bucle PERFORM
El bucle PERFORM
es el más básico y se utiliza para ejecutar un bloque de código un número específico de veces.
Sintaxis
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. EjemploPerform. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONTADOR PIC 9(2) VALUE 0. PROCEDURE DIVISION. PERFORM 5 TIMES ADD 1 TO CONTADOR DISPLAY 'Contador: ' CONTADOR END-PERFORM STOP RUN.
En este ejemplo, el bloque de código dentro de PERFORM
se ejecuta 5 veces, incrementando y mostrando el valor de CONTADOR
en cada iteración.
Bucle PERFORM VARYING
El bucle PERFORM VARYING
es más flexible y se utiliza para iterar sobre un rango de valores, similar a un bucle for
en otros lenguajes de programación.
Sintaxis
PERFORM <nombre-del-parágrafo> VARYING <variable> FROM <valor-inicial> BY <incremento> UNTIL <condición>.
Ejemplo
IDENTIFICATION DIVISION. PROGRAM-ID. EjemploPerformVarying. DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9(2) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10 DISPLAY 'Valor de I: ' I END-PERFORM STOP RUN.
En este ejemplo, I
se inicializa en 1 y se incrementa en 1 en cada iteración hasta que I
sea mayor que 10. El valor de I
se muestra en cada iteración.
Ejemplos Prácticos
Ejemplo 1: Sumar Números del 1 al 10
IDENTIFICATION DIVISION. PROGRAM-ID. SumarNumeros. DATA DIVISION. WORKING-STORAGE SECTION. 01 SUMA PIC 9(4) VALUE 0. 01 I PIC 9(2) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10 ADD I TO SUMA END-PERFORM DISPLAY 'La suma de los números del 1 al 10 es: ' SUMA STOP RUN.
Ejemplo 2: Mostrar una Tabla de Multiplicar
IDENTIFICATION DIVISION. PROGRAM-ID. TablaMultiplicar. DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9(2) VALUE 0. 01 J PIC 9(2) VALUE 0. 01 RESULTADO PIC 9(4) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10 PERFORM VARYING J FROM 1 BY 1 UNTIL J > 10 MULTIPLY I BY J GIVING RESULTADO DISPLAY I ' * ' J ' = ' RESULTADO END-PERFORM END-PERFORM STOP RUN.
Ejercicios
Ejercicio 1: Contar Números Pares del 1 al 20
Instrucciones: Escribe un programa COBOL que cuente y muestre los números pares del 1 al 20.
Solución:
IDENTIFICATION DIVISION. PROGRAM-ID. ContarPares. DATA DIVISION. WORKING-STORAGE SECTION. 01 I PIC 9(2) VALUE 0. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > 20 IF I MOD 2 = 0 THEN DISPLAY 'Número par: ' I END-IF END-PERFORM STOP RUN.
Ejercicio 2: Calcular el Factorial de un Número
Instrucciones: Escribe un programa COBOL que calcule el factorial de un número dado (por ejemplo, 5).
Solución:
IDENTIFICATION DIVISION. PROGRAM-ID. Factorial. DATA DIVISION. WORKING-STORAGE SECTION. 01 N PIC 9(2) VALUE 5. 01 I PIC 9(2) VALUE 0. 01 FACTORIAL PIC 9(10) VALUE 1. PROCEDURE DIVISION. PERFORM VARYING I FROM 1 BY 1 UNTIL I > N MULTIPLY FACTORIAL BY I GIVING FACTORIAL END-PERFORM DISPLAY 'El factorial de ' N ' es: ' FACTORIAL STOP RUN.
Conclusión
En esta sección, hemos aprendido sobre los constructos de bucle en COBOL, específicamente el uso de PERFORM
y PERFORM VARYING
. Estos constructos son esenciales para realizar tareas repetitivas y manejar iteraciones en tus programas COBOL. Asegúrate de practicar con los ejemplos y ejercicios proporcionados para consolidar tu comprensión de estos conceptos. En el próximo módulo, exploraremos las estructuras de control anidadas, que te permitirán crear programas más complejos y robustos.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL