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

PERFORM <nombre-del-parágrafo> TIMES.

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.

© Copyright 2024. Todos los derechos reservados