En aquest tema, aprendrem sobre l'ús de taules i arrays en COBOL. Les taules i arrays són estructures de dades que permeten emmagatzemar múltiples valors del mateix tipus de dades en una sola variable. Això és especialment útil per a la gestió de grans quantitats de dades de manera eficient.

Objectius

  • Entendre què són les taules i arrays en COBOL.
  • Aprendre a declarar i inicialitzar taules i arrays.
  • Comprendre com accedir i manipular elements dins d'una taula o array.
  • Realitzar operacions bàsiques amb taules i arrays.

Què són les Taules i Arrays?

En COBOL, una taula (o array) és una col·lecció d'elements de dades del mateix tipus, emmagatzemats en una estructura seqüencial. Cada element de la taula es pot accedir mitjançant un índex.

Declaració d'Arrays

Per declarar una taula en COBOL, utilitzem la clàusula OCCURS. Aquesta clàusula especifica el nombre de vegades que un element de dades es repeteix.

Exemple de Declaració

DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEES.
   05 EMPLOYEE-NAME PIC X(20) OCCURS 10 TIMES.

En aquest exemple, EMPLOYEE-NAME és una taula que pot contenir fins a 10 noms d'empleats, cadascun amb una longitud màxima de 20 caràcters.

Accés als Elements de la Taula

Per accedir a un element específic d'una taula, utilitzem un índex. Els índexs en COBOL comencen en 1.

Exemple d'Accés

PROCEDURE DIVISION.
DISPLAY EMPLOYEE-NAME (1).
MOVE "John Doe" TO EMPLOYEE-NAME (1).
DISPLAY EMPLOYEE-NAME (1).

Aquest codi mostra el primer element de la taula EMPLOYEE-NAME, assigna el valor "John Doe" a aquest element i el torna a mostrar.

Inicialització de Taules

Les taules es poden inicialitzar en el moment de la seva declaració o durant l'execució del programa.

Inicialització en la Declaració

DATA DIVISION.
WORKING-STORAGE SECTION.
01 EMPLOYEES.
   05 EMPLOYEE-NAME PIC X(20) OCCURS 10 TIMES VALUE "UNKNOWN".

En aquest exemple, tots els elements de la taula EMPLOYEE-NAME s'inicialitzen amb el valor "UNKNOWN".

Inicialització durant l'Execució

PROCEDURE DIVISION.
PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
   MOVE "UNKNOWN" TO EMPLOYEE-NAME (I)
END-PERFORM.

Aquest codi inicialitza cada element de la taula EMPLOYEE-NAME amb el valor "UNKNOWN" utilitzant un bucle PERFORM.

Manipulació d'Elements de la Taula

Podem realitzar diverses operacions amb els elements d'una taula, com ara assignar valors, sumar elements, buscar elements específics, etc.

Exemple de Suma d'Elements

DATA DIVISION.
WORKING-STORAGE SECTION.
01 NUMBERS.
   05 NUMBER PIC 9(4) OCCURS 5 TIMES.
01 TOTAL PIC 9(5) VALUE 0.

PROCEDURE DIVISION.
MOVE 10 TO NUMBER (1).
MOVE 20 TO NUMBER (2).
MOVE 30 TO NUMBER (3).
MOVE 40 TO NUMBER (4).
MOVE 50 TO NUMBER (5).

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
   ADD NUMBER (I) TO TOTAL
END-PERFORM.

DISPLAY "TOTAL: " TOTAL.

Aquest codi assigna valors a una taula NUMBER i després suma tots els elements de la taula, emmagatzemant el resultat en la variable TOTAL.

Exercicis Pràctics

Exercici 1: Declaració i Inicialització

  1. Declara una taula STUDENT-NAMES que pugui contenir fins a 15 noms d'estudiants, cadascun amb una longitud màxima de 30 caràcters.
  2. Inicialitza tots els elements de la taula amb el valor "NOT ASSIGNED".

Solució

DATA DIVISION.
WORKING-STORAGE SECTION.
01 STUDENT-NAMES.
   05 STUDENT-NAME PIC X(30) OCCURS 15 TIMES VALUE "NOT ASSIGNED".

Exercici 2: Accés i Manipulació

  1. Declara una taula GRADES que pugui contenir fins a 5 notes, cadascuna amb un valor màxim de 100.
  2. Assigna els valors 85, 90, 78, 92 i 88 als elements de la taula.
  3. Calcula la mitjana de les notes i mostra el resultat.

Solució

DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRADES.
   05 GRADE PIC 9(3) OCCURS 5 TIMES.
01 TOTAL PIC 9(4) VALUE 0.
01 AVERAGE PIC 9(3) VALUE 0.

PROCEDURE DIVISION.
MOVE 85 TO GRADE (1).
MOVE 90 TO GRADE (2).
MOVE 78 TO GRADE (3).
MOVE 92 TO GRADE (4).
MOVE 88 TO GRADE (5).

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 5
   ADD GRADE (I) TO TOTAL
END-PERFORM.

DIVIDE TOTAL BY 5 GIVING AVERAGE.

DISPLAY "AVERAGE GRADE: " AVERAGE.

Resum

En aquest tema, hem après què són les taules i arrays en COBOL, com declarar-les, inicialitzar-les i accedir als seus elements. També hem vist exemples pràctics de manipulació d'elements dins d'una taula. Les taules i arrays són eines poderoses per gestionar grans quantitats de dades de manera eficient en els programes COBOL.

© Copyright 2024. Tots els drets reservats