En aquest tema, aprendrem sobre les construccions de bucle en COBOL, que són essencials per a la repetició de blocs de codi. Els bucles permeten executar una sèrie d'instruccions múltiples vegades fins que es compleixi una condició específica. COBOL ofereix diverses maneres de crear bucles, cadascuna amb les seves pròpies característiques i usos.

Tipus de Bucles en COBOL

  1. PERFORM UNTIL
  2. PERFORM VARYING
  3. PERFORM TIMES

  1. PERFORM UNTIL

El bucle PERFORM UNTIL executa un bloc de codi repetidament fins que una condició es compleixi.

Sintaxi

PERFORM
    [paràgraf o secció]
    UNTIL [condició].

Exemple

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformUntilExample.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 COUNTER PIC 9(2) VALUE 0.
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM INCREMENT-COUNTER
               UNTIL COUNTER > 10
           DISPLAY "Final value of COUNTER: " COUNTER
           STOP RUN.

       INCREMENT-COUNTER.
           ADD 1 TO COUNTER
           DISPLAY "COUNTER: " COUNTER.

Explicació

  • COUNTER: Una variable que s'incrementa en cada iteració.
  • INCREMENT-COUNTER: Un paràgraf que incrementa el valor de COUNTER i el mostra.
  • PERFORM UNTIL: Executa INCREMENT-COUNTER fins que COUNTER sigui major que 10.

  1. PERFORM VARYING

El bucle PERFORM VARYING és similar a un bucle for en altres llenguatges de programació. Permet variar una variable des d'un valor inicial fins a un valor final, amb un increment específic.

Sintaxi

PERFORM [paràgraf o secció]
    VARYING [variable] FROM [inici] BY [increment]
    UNTIL [condició].

Exemple

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformVaryingExample.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 I PIC 9(2).
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM DISPLAY-NUMBER
               VARYING I FROM 1 BY 1
               UNTIL I > 10
           STOP RUN.

       DISPLAY-NUMBER.
           DISPLAY "I: " I.

Explicació

  • I: Una variable que varia des de 1 fins a 10.
  • DISPLAY-NUMBER: Un paràgraf que mostra el valor de I.
  • PERFORM VARYING: Executa DISPLAY-NUMBER mentre I varia de 1 a 10.

  1. PERFORM TIMES

El bucle PERFORM TIMES executa un bloc de codi un nombre específic de vegades.

Sintaxi

PERFORM [paràgraf o secció] [nombre] TIMES.

Exemple

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformTimesExample.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 COUNTER PIC 9(2).
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM INCREMENT-COUNTER 5 TIMES
           DISPLAY "Final value of COUNTER: " COUNTER
           STOP RUN.

       INCREMENT-COUNTER.
           ADD 1 TO COUNTER
           DISPLAY "COUNTER: " COUNTER.

Explicació

  • COUNTER: Una variable que s'incrementa en cada iteració.
  • INCREMENT-COUNTER: Un paràgraf que incrementa el valor de COUNTER i el mostra.
  • PERFORM TIMES: Executa INCREMENT-COUNTER 5 vegades.

Exercicis Pràctics

Exercici 1: Utilitzant PERFORM UNTIL

Escriu un programa COBOL que mostri els nombres de 1 a 20 utilitzant un bucle PERFORM UNTIL.

Solució

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformUntilExercise.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 COUNTER PIC 9(2) VALUE 1.
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM DISPLAY-NUMBER
               UNTIL COUNTER > 20
           STOP RUN.

       DISPLAY-NUMBER.
           DISPLAY "Number: " COUNTER
           ADD 1 TO COUNTER.

Exercici 2: Utilitzant PERFORM VARYING

Escriu un programa COBOL que mostri els nombres parells de 2 a 20 utilitzant un bucle PERFORM VARYING.

Solució

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformVaryingExercise.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 I PIC 9(2).
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM DISPLAY-EVEN-NUMBER
               VARYING I FROM 2 BY 2
               UNTIL I > 20
           STOP RUN.

       DISPLAY-EVEN-NUMBER.
           DISPLAY "Even Number: " I.

Exercici 3: Utilitzant PERFORM TIMES

Escriu un programa COBOL que mostri "Hello, World!" 10 vegades utilitzant un bucle PERFORM TIMES.

Solució

       IDENTIFICATION DIVISION.
       PROGRAM-ID. PerformTimesExercise.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 COUNTER PIC 9(2).
       PROCEDURE DIVISION.
       MAIN-PARA.
           PERFORM DISPLAY-MESSAGE 10 TIMES
           STOP RUN.

       DISPLAY-MESSAGE.
           DISPLAY "Hello, World!".

Resum

En aquesta secció, hem après sobre les construccions de bucle en COBOL, incloent PERFORM UNTIL, PERFORM VARYING i PERFORM TIMES. Hem vist exemples pràctics de cada tipus de bucle i hem practicat amb exercicis per reforçar els conceptes apresos. Els bucles són una eina poderosa per a la repetició de tasques en els programes COBOL, i comprendre com utilitzar-los eficientment és crucial per a qualsevol programador COBOL.

© Copyright 2024. Tots els drets reservats