En este módulo, aprenderemos sobre el uso de tablas y arreglos en COBOL. Estos son fundamentales para manejar colecciones de datos de manera eficiente. COBOL proporciona estructuras específicas para trabajar con datos tabulares, lo que facilita la manipulación y el acceso a grandes volúmenes de información.

Objetivos del Módulo

  • Comprender la definición y uso de tablas y arreglos en COBOL.
  • Aprender a declarar y manipular arreglos unidimensionales.
  • Explorar el uso de arreglos multidimensionales.
  • Implementar ejemplos prácticos para reforzar los conceptos.

  1. Introducción a las Tablas y Arreglos

¿Qué es una Tabla en COBOL?

Una tabla en COBOL es una estructura de datos que permite almacenar múltiples elementos del mismo tipo. Es similar a los arreglos en otros lenguajes de programación.

Definición de una Tabla

Las tablas se definen en la sección de datos del programa COBOL, específicamente en la WORKING-STORAGE SECTION o FILE SECTION.

Sintaxis Básica

01 TABLE-NAME.
   05 ELEMENT-NAME OCCURS n TIMES.
  • TABLE-NAME: Nombre de la tabla.
  • ELEMENT-NAME: Nombre del elemento individual en la tabla.
  • OCCURS n TIMES: Indica que el elemento se repite n veces.

  1. Declaración de Arreglos Unidimensionales

Ejemplo de Declaración

WORKING-STORAGE SECTION.
01 STUDENT-SCORES.
   05 SCORE PIC 9(3) OCCURS 10 TIMES.

En este ejemplo, STUDENT-SCORES es una tabla que contiene 10 elementos, cada uno de los cuales puede almacenar un valor de hasta 3 dígitos.

Acceso a Elementos de la Tabla

Para acceder a un elemento específico de la tabla, se utiliza un índice:

MOVE 85 TO SCORE (1).  * Asigna 85 al primer elemento de la tabla
DISPLAY SCORE (1).     * Muestra el valor del primer elemento

  1. Manipulación de Arreglos

Inicialización de Arreglos

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
   MOVE 0 TO SCORE (I)
END-PERFORM.

Este bloque de código inicializa todos los elementos de la tabla SCORE a 0.

Ejemplo Completo

IDENTIFICATION DIVISION.
PROGRAM-ID. ArrayExample.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 STUDENT-SCORES.
   05 SCORE PIC 9(3) OCCURS 10 TIMES.
01 I PIC 9(2).

PROCEDURE DIVISION.
INITIALIZE-ARRAY.
   PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
      MOVE 0 TO SCORE (I)
   END-PERFORM.

DISPLAY-ARRAY.
   PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
      DISPLAY "SCORE (" I ") = " SCORE (I)
   END-PERFORM.

STOP RUN.

  1. Arreglos Multidimensionales

Declaración de Arreglos Multidimensionales

WORKING-STORAGE SECTION.
01 SALES-TABLE.
   05 SALES-REGION OCCURS 5 TIMES.
      10 SALES-MONTH OCCURS 12 TIMES PIC 9(5).

En este ejemplo, SALES-TABLE es una tabla bidimensional que almacena las ventas mensuales para 5 regiones.

Acceso a Elementos de Arreglos Multidimensionales

MOVE 1000 TO SALES-MONTH (1, 1).  * Asigna 1000 al primer mes de la primera región
DISPLAY SALES-MONTH (1, 1).       * Muestra el valor del primer mes de la primera región

  1. Ejercicio Práctico

Ejercicio

Crea un programa COBOL que:

  1. Declare una tabla para almacenar las ventas diarias de una semana (7 días).
  2. Inicialice la tabla con valores de ventas aleatorios.
  3. Calcule y muestre el total de ventas de la semana.

Solución

IDENTIFICATION DIVISION.
PROGRAM-ID. WeeklySales.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WEEKLY-SALES.
   05 DAILY-SALES PIC 9(5) OCCURS 7 TIMES.
01 I PIC 9(1).
01 TOTAL-SALES PIC 9(6) VALUE 0.

PROCEDURE DIVISION.
INITIALIZE-SALES.
   PERFORM VARYING I FROM 1 BY 1 UNTIL I > 7
      MOVE FUNCTION RANDOM(1000) TO DAILY-SALES (I)
   END-PERFORM.

CALCULATE-TOTAL.
   PERFORM VARYING I FROM 1 BY 1 UNTIL I > 7
      ADD DAILY-SALES (I) TO TOTAL-SALES
   END-PERFORM.

DISPLAY-RESULTS.
   DISPLAY "Total Sales for the Week: " TOTAL-SALES.

STOP RUN.

Conclusión

En este módulo, hemos aprendido a definir y manipular tablas y arreglos en COBOL. Hemos cubierto tanto arreglos unidimensionales como multidimensionales, y hemos implementado ejemplos prácticos para reforzar estos conceptos. En el siguiente módulo, exploraremos el manejo avanzado de datos, incluyendo el uso de arreglos multidimensionales y técnicas de ordenación y fusión de datos.

© Copyright 2024. Todos los derechos reservados