Números de nivel de las variables - Capítulo 20

Curso de COBOL desde cero


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

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.

Código

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.

Código

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:

Código

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 3 variables de nivel 88 para evaluar unos rangos de edad posibles, de 1 a 40 JOVEN de 41 a 65 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.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


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.