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
- 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.
- Declaración de Arreglos Multidimensionales: En COBOL, los arreglos multidimensionales se declaran utilizando la cláusula
OCCURS
de manera anidada. - 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:
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
- Declaración del Arreglo: Se declara un arreglo bidimensional
STUDENT-GRADES
con 3 estudiantes y 2 materias. - Asignación de Valores: Se asignan valores a las calificaciones de cada estudiante en cada materia.
- 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.
- Declara un arreglo tridimensional
SALES-DATA
que almacene las ventas de 4 regiones, 3 meses y 2 productos. - Asigna valores a algunos elementos del arreglo.
- 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
- Declaración del Arreglo: Se declara un arreglo tridimensional
SALES-DATA
con 4 regiones, 3 meses y 2 productos. - Asignación de Valores: Se asignan valores a las ventas de algunos productos en algunas regiones y meses.
- 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.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL