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.