En COBOL, las variables se declaran en la División DATA, dentro de la sección WORKING-STORAGE SECTION o LINKAGE SECTION, según el propósito y el ámbito de las variables. Todas las variables deben ser definidas explícitamente antes de ser usadas y se agrupan en niveles jerárquicos identificados por números.
Las variables en COBOL se declaran asignándoles un nivel, un nombre y un tipo (mediante una cláusula PICTURE). Estas son las partes clave de una declaración:
1. Nivel: Identifica la jerarquía de la variable (por ejemplo, 01 para variables principales, 05 para subordinadas).
2. Nombre de la variable: Es el identificador que se utilizará en el código.
3. Cláusula PICTURE: Especifica el tipo y tamaño de la variable.
WORKING-STORAGE SECTION.
01 CLIENTE-NOMBRE PIC A(30). *> Cadena de 30 caracteres alfabéticos
01 CLIENTE-EDAD PIC 99. *> Número de 2 dígitos
01 SALDO-CUENTA PIC 9(5)V99. *> Número con 5 enteros y 2 decimales
Nivel | Descripción | Ejemplo |
---|---|---|
01 | Declaración principal (estructura raíz). |
01 CLIENTE-NOMBRE PIC A(30).
|
05 | Declaración subordinada (subniveles). |
05 CLIENTE-CIUDAD PIC A(20).
|
77 | Variable independiente (sin subniveles). |
77 CLIENTE-TELEFONO PIC 9(10).
|
88 | Condiciones para variables. |
88 MAYOR-EDAD VALUE 18 THRU 99.
|
Los datos en COBOL se especifican con la cláusula PICTURE:
Código | Significado | Ejemplo |
---|---|---|
9
|
Dígitos numéricos. |
PIC 9(5) → 12345
|
A
|
Caracteres alfabéticos. |
PIC A(10) → ABCDE
|
X
|
Caracteres alfanuméricos. |
PIC X(20) → A123
|
V
|
Punto decimal implícito. |
PIC 9(3)V99 → 123.45
|
S
|
Signo para números negativos. |
PIC S9(3) → -123
|
WORKING-STORAGE SECTION.
01 CLIENTE-NOMBRE PIC X(20). *> Alfanumérica de 20 caracteres
01 CLIENTE-EDAD PIC 99. *> Número de 2 dígitos
01 SALDO-CUENTA PIC 9(7)V99. *> Número con 7 enteros y 2 decimales
WORKING-STORAGE SECTION.
01 CLIENTE-DATOS.
05 CLIENTE-NOMBRE PIC X(30).
05 CLIENTE-DIRECCION PIC X(50).
05 CLIENTE-EDAD PIC 99.
WORKING-STORAGE SECTION.
01 CLIENTE-EDAD PIC 99.
88 MAYOR-EDAD VALUE 18 THRU 99.
88 MENOR-EDAD VALUE 0 THRU 17.
IF MAYOR-EDAD
DISPLAY "Cliente es mayor de edad."
ELSE
DISPLAY "Cliente es menor de edad."
Consulta la documentación de COBOL en IBM para más detalles sobre la declaración y uso de variables.
Jorge García
Fullstack developer