Les estructures de control imbricades són una part fonamental de la programació en COBOL, ja que permeten crear programes més complexos i flexibles. En aquest tema, aprendrem com utilitzar les estructures de control imbricades per gestionar la lògica del programa de manera eficient.

Continguts

  1. Introducció a les Estructures de Control Imbricades
  2. Sentències IF Imbricades
  3. Bucle Imbricat
  4. Exemples Pràctics
  5. Exercicis Pràctics

  1. Introducció a les Estructures de Control Imbricades

Les estructures de control imbricades són aquelles en què una estructura de control (com una sentència IF o un bucle) es troba dins d'una altra estructura de control. Això permet que el programa prengui decisions més complexes i realitzi operacions repetitives de manera més sofisticada.

  1. Sentències IF Imbricades

Les sentències IF imbricades permeten a un programa prendre decisions basades en múltiples condicions. Aquí teniu un exemple bàsic:

IF condition-1
    IF condition-2
        PERFORM action-1
    ELSE
        PERFORM action-2
ELSE
    PERFORM action-3
END-IF

Exemple Pràctic

IDENTIFICATION DIVISION.
PROGRAM-ID. NestedIfExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  AGE            PIC 99.
01  INCOME         PIC 9(5).

PROCEDURE DIVISION.
    MOVE 25 TO AGE.
    MOVE 30000 TO INCOME.

    IF AGE > 18
        IF INCOME > 20000
            DISPLAY 'Eligible for loan'
        ELSE
            DISPLAY 'Not eligible for loan due to low income'
    ELSE
        DISPLAY 'Not eligible for loan due to age'
    END-IF.

    STOP RUN.

Explicació

  1. Condició 1: Si l'edat és superior a 18.
  2. Condició 2: Si els ingressos són superiors a 20000.
  3. Accions: Mostra missatges diferents segons les condicions.

  1. Bucle Imbricat

Els bucles imbricats permeten repetir una sèrie d'operacions dins d'un altre bucle. Això és útil per a operacions que requereixen múltiples nivells de repetició, com ara processar una matriu bidimensional.

Exemple Pràctic

IDENTIFICATION DIVISION.
PROGRAM-ID. NestedLoopExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  I              PIC 9 VALUE 0.
01  J              PIC 9 VALUE 0.

PROCEDURE DIVISION.
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
        PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
            DISPLAY 'I = ' I ' J = ' J
        END-PERFORM
    END-PERFORM.

    STOP RUN.

Explicació

  1. Bucle Extern: Itera la variable I de 1 a 3.
  2. Bucle Intern: Itera la variable J de 1 a 3 per a cada valor de I.
  3. Acció: Mostra els valors de I i J en cada iteració.

  1. Exemples Pràctics

Exemple 1: Sentències IF Imbricades

IDENTIFICATION DIVISION.
PROGRAM-ID. NestedIfExample2.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  GRADE          PIC 9 VALUE 0.

PROCEDURE DIVISION.
    MOVE 85 TO GRADE.

    IF GRADE >= 90
        DISPLAY 'Grade: A'
    ELSE
        IF GRADE >= 80
            DISPLAY 'Grade: B'
        ELSE
            IF GRADE >= 70
                DISPLAY 'Grade: C'
            ELSE
                DISPLAY 'Grade: F'
            END-IF
        END-IF
    END-IF.

    STOP RUN.

Exemple 2: Bucle Imbricat

IDENTIFICATION DIVISION.
PROGRAM-ID. NestedLoopExample2.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  ROW            PIC 9 VALUE 0.
01  COL            PIC 9 VALUE 0.

PROCEDURE DIVISION.
    PERFORM VARYING ROW FROM 1 BY 1 UNTIL ROW > 5
        PERFORM VARYING COL FROM 1 BY 1 UNTIL COL > 5
            DISPLAY 'Row: ' ROW ' Col: ' COL
        END-PERFORM
    END-PERFORM.

    STOP RUN.

  1. Exercicis Pràctics

Exercici 1: Sentències IF Imbricades

Escriu un programa COBOL que determini si una persona és elegible per a un descompte basat en la seva edat i ingressos. Si l'edat és superior a 60 i els ingressos són inferiors a 25000, la persona és elegible per al descompte.

Solució

IDENTIFICATION DIVISION.
PROGRAM-ID. DiscountEligibility.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  AGE            PIC 99.
01  INCOME         PIC 9(5).

PROCEDURE DIVISION.
    MOVE 65 TO AGE.
    MOVE 20000 TO INCOME.

    IF AGE > 60
        IF INCOME < 25000
            DISPLAY 'Eligible for discount'
        ELSE
            DISPLAY 'Not eligible for discount due to high income'
    ELSE
        DISPLAY 'Not eligible for discount due to age'
    END-IF.

    STOP RUN.

Exercici 2: Bucle Imbricat

Escriu un programa COBOL que mostri una taula de multiplicar de 1 a 5.

Solució

IDENTIFICATION DIVISION.
PROGRAM-ID. MultiplicationTable.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  I              PIC 9 VALUE 0.
01  J              PIC 9 VALUE 0.

PROCEDURE DIVISION.
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
        PERFORM VARYING J FROM 1 BY 1 UNTIL J > 5
            DISPLAY I ' * ' J ' = ' I * J
        END-PERFORM
    END-PERFORM.

    STOP RUN.

Conclusió

Les estructures de control imbricades són essencials per a la programació en COBOL, ja que permeten gestionar la lògica del programa de manera més detallada i complexa. Amb la pràctica, podràs utilitzar aquestes estructures per crear programes més robustos i eficients. En el següent mòdul, explorarem com treballar amb dades en COBOL, incloent la gestió d'arxius i el processament de dades.

© Copyright 2024. Tots els drets reservats