Variables en COBOL

Una variable en COBOL, como en cualquier otro lenguaje de programación reserva una sección de la memoria de la computadora para guardar un cierto tipo de datos. En COBOL, las variables se denominan Nombres de Dato.

Sintaxis de variables

Sus nombres pueden tener hasta 30 caracteres, sólo puede contener dígitos, letras el signo menos y el guión bajo, no debe tener el mismo nombre que una palabra reservada en COBOL, no debe contener espacios.

Para declarar variables utilizamos la sección de datos del programa y la sintaxis es la siguiente:

nivel data-name picture value

Ejemplo:

01 myvar PIC 9(2) VALUE '01'

Para entender esto de manera mas clara necesitamos ver los valores posibles de niveles, y tipos de datos (pictures).

Niveles de datos

Para entender los niveles, tenemos que entender un poco de contexto y de la historia detrás de COBOL. Ya que COBOL es un lenguaje orientado al procesamiento de registros y en los primeros años de la computación almacenar los registros era sumamente caro, era común que las reglas de creación de claves y de registros siguieran ciertas reglas para su construcción y posterior reconstrucción de los registros. Para crear claves combinadas, se puede aprovechar la estructura de niveles de COBOL, declarando que una variable se compone de niveles individuales (usando los niveles 01 a 49) que se agrupan en variables compuestas o contienen items de datos individuales.

DATA DIVISION.
WORKING-STORAGE SECTION.
* DATOS INDIVIDUALES
01 MYVAR    PIC 9(2) VALUE 10.

* DATO AGRUPADO
01 MYREG.
    02 NOMBRE PIC A(256). 
    02 SSN    PIC X(9).

Tipos de datos

Los tipos de datos se pueden representar como numéricos, alfabéticos o alfanuméricos.

DATA DIVISION.
WORKING-STORAGE SECTION.
* DATOS INDIVIDUALES
01 UNSIGNEDVAR    PIC 9(2) VALUE 10.
01 MYSIGNEDVAR    PIC S9(3) VALUE -120.
01 MYDECSIGVAR    PIC S9(3)V9(3) VALUE +345.902.
01 MYALPHAVAR     PIC A(20) VALUE 'MATHILDE'.
01 MYALPHANVAR    PIC X(10) 'MARTIN932'.

El tipo de datos ARRAY en COBOL

Para declarar una variable ARRAY en cobol tenemos que utilizar la palabra OCCURS la cual indica la longitud del array, esta tabla es una tabla interna que en principio es secuencial (como un packed array en C) para referirnos a los elementos del array utilizaremos las palabras INDEX y SUBSCRIPT.

Para declarar un array necesitamos ver la estructura de nuestra tabla, idealmente la vamos a separar en niveles y manejarla por renglón y columna.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 GRADES-ARR   
    02 ROW OCCURES 10 TIMES.
        03 COL PIC 9(2) OCCURES 6 TIMES.