¿Qué son los números de nivel en COBOL?
Capítulo 20: Números de nivel de las variables
En este capítulo vas a ver los diferentes números de nivel de las variables y para qué sirven.
Los números de nivel indican al compilador el tipo de variable que es. Así de sencillo.
Nivel de ejecución 01 y 77 de COBOL
El nivel 01
identifica la primera entrada de un campo (variable) que se va a subdividir, cómo vimos con las estructuras del capítulo anterior.
01 VARIABLE-COMPUESTA.
05 NUM1 PIC 9 VALUE 2.
05 NUM2 PIC 9 VALUE 4.
05 NUM3 PIC 9 VALUE 4.
05 NUM1 PIC 9 VALUE 9.
No obstante, se puede utilizar con variables simples que no se van a subdividir.
01 NUM1 PIC 9 VALUE 2.
A partir de aquí, debes modificar tus hábitos de lo aprendido hasta ahora. Puedes utilizar el nivel 01 para las variables simples, pero también puedes utilizar el nivel 77
. En cambio, en las estructuras solo puedes utilizar el número 01.
Por cuestiones de lectura y organización, te recomiendo que a partir de ahora, las variables simples las inicies con el nivel 77 y las estructuras con el nivel 01.
01 VARIABLE-COMPUESTA.
05 NUM1 PIC 9 VALUE 2.
05 NUM2 PIC 9 VALUE 4.
05 NUM3 PIC 9 VALUE 4.
05 NUM1 PIC 9 VALUE 9.
77 NUM1 PIC 9 VALUE 2.
Niveles de ejecución del 02 al 49
Estos son los niveles que indican las subdivisiones dentro de las estructuras, es decir, las variables que lleva dentro pueden llevar tanto el número 02
o el 10
o el 15
o cualquiera hasta el 49
, exceptuando el 01
que está reservado solo para las estructuras.
Ten en cuenta, que no puedes mezclar números de nivel dentro de una misma estructura. Este ejemplo es incorrecto:
Código Erróneo
01 VARIABLE-COMPUESTA.
02 NUM1 PIC 9 VALUE 2.
05 NUM2 PIC 9 VALUE 4.
07 NUM3 PIC 9 VALUE 4.
16 NUM1 PIC 9 VALUE 9.
Este código sí es correcto:
01 VARIABLE-COMPUESTA1.
02 NUM1 PIC 9 VALUE 2.
02 NUM2 PIC 9 VALUE 4.
02 NUM3 PIC 9 VALUE 4.
02 NUM1 PIC 9 VALUE 9.
01 VARIABLE-COMPUESTA2.
05 NUM1 PIC 9 VALUE 2.
05 NUM2 PIC 9 VALUE 4.
05 NUM3 PIC 9 VALUE 4.
05 NUM1 PIC 9 VALUE 9.
Pero debes tener en cuenta que es mejor llevar un orden y utilizar los mismos números de nivel dentro de todas las estructuras.
Además, el uso de dos variables con el mismo nombre dentro de un mismo programa te puede dar error. Por ejemplo, si utilizas individualmente la variable NUM1
¿a cuál de las dos llama COBOL?
En cambio, si llamas a toda la estructura, no deberías tener problemas.
También ten en cuenta que no puedes utilizar los números del 02
al 49
para las variables simples.
Nivel de ejecución 88
Este nivel identifica posibles valores que se pueden almacenar en una variable.
Veamos un ejemplo práctico que te ayudará a entenderlo:
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-20.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 EDAD PIC 999.
88 JOVEN VALUE 1 THRU 40.
88 MADURO VALUE 41 THRU 65.
88 ANCIANO VALUE 66 THRU 100.
PROCEDURE DIVISION.
MIRA-EDAD.
DISPLAY "Introduce tu edad: "
ACCEPT EDAD.
IF JOVEN
DISPLAY "Eres joven.".
IF MADURO
DISPLAY "Eres maduro.".
IF ANCIANO
DISPLAY "Eres anciano.".
STOP RUN.
END PROGRAM CAPITULO-20.
En este ejemplo, se utilizan tres variables de nivel 88
para evaluar unos rangos de edad posibles, de 1
a 40
, es JOVEN
de 41
a 65
es MADURO
y de 66
a 100
ANCIANO
.
Este tipo de variables se especifica como una estructura con el número de nivel 01
, pero con una gran diferencia, en esta se especifica el PICTURE
y en las variables de dentro no, por lo que en la creación de esta estructura ya definimos el tipo de dato que van a contener sus variables internas.
Comentarios
Si te quedan dudas sobre el temario, sobre COBOL, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.