En este tema, exploraremos los arreglos multidimensionales en COBOL, una característica avanzada que permite manejar datos en más de una dimensión. Los arreglos multidimensionales son útiles para representar estructuras de datos complejas, como tablas y matrices.

Conceptos Clave

  1. Definición de Arreglos Multidimensionales: Un arreglo multidimensional es una estructura de datos que permite almacenar elementos en una tabla de más de una dimensión.
  2. Declaración de Arreglos Multidimensionales: En COBOL, los arreglos multidimensionales se declaran utilizando la cláusula OCCURS de manera anidada.
  3. Acceso a Elementos: Los elementos de un arreglo multidimensional se acceden especificando índices para cada dimensión.

Declaración de Arreglos Multidimensionales

Para declarar un arreglo multidimensional en COBOL, utilizamos la cláusula OCCURS de manera anidada. A continuación, se muestra un ejemplo de cómo declarar un arreglo bidimensional:

DATA DIVISION.
WORKING-STORAGE SECTION.
01  STUDENT-GRADES.
    05  STUDENT OCCURS 10 TIMES.
        10  SUBJECT OCCURS 5 TIMES.
            15  GRADE PIC 99.

En este ejemplo:

  • STUDENT-GRADES es un arreglo bidimensional.
  • La primera dimensión (STUDENT) tiene 10 elementos.
  • La segunda dimensión (SUBJECT) tiene 5 elementos.
  • Cada elemento GRADE es un número de dos dígitos (PIC 99).

Acceso a Elementos

Para acceder a un elemento específico en un arreglo multidimensional, se deben especificar los índices de cada dimensión. Por ejemplo, para acceder a la calificación del tercer estudiante en la segunda materia, se utiliza la siguiente sintaxis:

MOVE STUDENT(3) OF SUBJECT(2) OF STUDENT-GRADES TO WS-GRADE.

Aquí, WS-GRADE es una variable de trabajo donde se almacenará el valor de la calificación.

Ejemplo Práctico

A continuación, se presenta un programa COBOL completo que declara un arreglo bidimensional, asigna valores y los imprime:

IDENTIFICATION DIVISION.
PROGRAM-ID. MultiDimArrayExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  STUDENT-GRADES.
    05  STUDENT OCCURS 3 TIMES.
        10  SUBJECT OCCURS 2 TIMES.
            15  GRADE PIC 99.

01  WS-GRADE PIC 99.

PROCEDURE DIVISION.
MAIN-PARA.
    * Asignar valores a los elementos del arreglo
    MOVE 85 TO GRADE OF SUBJECT(1) OF STUDENT(1).
    MOVE 90 TO GRADE OF SUBJECT(2) OF STUDENT(1).
    MOVE 75 TO GRADE OF SUBJECT(1) OF STUDENT(2).
    MOVE 80 TO GRADE OF SUBJECT(2) OF STUDENT(2).
    MOVE 95 TO GRADE OF SUBJECT(1) OF STUDENT(3).
    MOVE 88 TO GRADE OF SUBJECT(2) OF STUDENT(3).

    * Imprimir los valores del arreglo
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
        PERFORM VARYING J FROM 1 BY 1 UNTIL J > 2
            MOVE GRADE OF SUBJECT(J) OF STUDENT(I) TO WS-GRADE
            DISPLAY 'Student ' I ' Subject ' J ' Grade: ' WS-GRADE
        END-PERFORM
    END-PERFORM.

    STOP RUN.

Explicación del Código

  1. Declaración del Arreglo: Se declara un arreglo bidimensional STUDENT-GRADES con 3 estudiantes y 2 materias.
  2. Asignación de Valores: Se asignan valores a las calificaciones de cada estudiante en cada materia.
  3. Impresión de Valores: Se utiliza un bucle anidado PERFORM VARYING para recorrer el arreglo y mostrar las calificaciones.

Ejercicio Práctico

Ejercicio 1: Declarar y Acceder a un Arreglo Tridimensional

Objetivo: Declarar un arreglo tridimensional y acceder a sus elementos.

  1. Declara un arreglo tridimensional SALES-DATA que almacene las ventas de 4 regiones, 3 meses y 2 productos.
  2. Asigna valores a algunos elementos del arreglo.
  3. Imprime los valores asignados.

Solución:

IDENTIFICATION DIVISION.
PROGRAM-ID. ThreeDimArrayExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  SALES-DATA.
    05  REGION OCCURS 4 TIMES.
        10  MONTH OCCURS 3 TIMES.
            15  PRODUCT OCCURS 2 TIMES.
                20  SALES PIC 9(5).

01  WS-SALES PIC 9(5).

PROCEDURE DIVISION.
MAIN-PARA.
    * Asignar valores a los elementos del arreglo
    MOVE 100 TO SALES OF PRODUCT(1) OF MONTH(1) OF REGION(1).
    MOVE 200 TO SALES OF PRODUCT(2) OF MONTH(1) OF REGION(1).
    MOVE 150 TO SALES OF PRODUCT(1) OF MONTH(2) OF REGION(2).
    MOVE 250 TO SALES OF PRODUCT(2) OF MONTH(2) OF REGION(2).

    * Imprimir los valores del arreglo
    PERFORM VARYING I FROM 1 BY 1 UNTIL I > 4
        PERFORM VARYING J FROM 1 BY 1 UNTIL J > 3
            PERFORM VARYING K FROM 1 BY 1 UNTIL K > 2
                MOVE SALES OF PRODUCT(K) OF MONTH(J) OF REGION(I) TO WS-SALES
                DISPLAY 'Region ' I ' Month ' J ' Product ' K ' Sales: ' WS-SALES
            END-PERFORM
        END-PERFORM
    END-PERFORM.

    STOP RUN.

Explicación del Ejercicio

  1. Declaración del Arreglo: Se declara un arreglo tridimensional SALES-DATA con 4 regiones, 3 meses y 2 productos.
  2. Asignación de Valores: Se asignan valores a las ventas de algunos productos en algunas regiones y meses.
  3. Impresión de Valores: Se utiliza un bucle anidado PERFORM VARYING para recorrer el arreglo y mostrar las ventas.

Conclusión

En esta sección, hemos aprendido a declarar y utilizar arreglos multidimensionales en COBOL. Los arreglos multidimensionales son una herramienta poderosa para manejar datos complejos y estructurados. Asegúrate de practicar con diferentes configuraciones de arreglos para familiarizarte con su uso y manipulación.

En el próximo módulo, exploraremos el manejo de cadenas en COBOL, una habilidad esencial para la manipulación de texto y datos alfanuméricos.

© Copyright 2024. Todos los derechos reservados