Variables en COBOL

Declarar e inicializar variables puede ser simple para los programadores. Sin embargo, si este es su primer lenguaje de programación, piense en una variable como un contenedor en el que puede llenar una cantidad desconocida, un valor de dicho tipo de datos. Según su uso, el valor de esta variable se almacena en una dirección de memoria particular y se puede acceder a ella según el nombre de la variable elegido por el programador. Ahora, cuando usamos una variable, la declaramos y, a menudo, la inicializamos con un valor que podría ser de tipo booleano, string, int o doble. Lo más importante es que usamos nombres descriptivos para que sepamos para qué se usa esa variable.

Por ejemplo, en Java, que es un lenguaje fuertemente tipado, usaríamos la siguiente sintaxis:

Java

int loopCounter = 0;

Por el contrario, en Python, que es un lenguaje de tipos flexibles, usamos la sintaxis sin el tipo de datos para hacer lo mismo: 

Python3

loopCounter = 0

En COBOL, esto es casi lo mismo. Particularmente si queremos declarar e inicializar variables para el cálculo.

Dicho esto, nos referimos a las variables como elementos de datos en COBOL y en aras de seguir los términos convencionalmente aceptados al aprender este lenguaje, haremos lo mismo.

Introducción a las variables COBOL

Mientras que en los lenguajes populares solemos declarar e inicializar una variable antes de su uso en el código, este proceso es más formal en COBOL, ya que debe declararse en un área específica del programa.

Dado que un programa COBOL se divide en cuatro divisiones, debemos buscar la Sección de almacenamiento de trabajo que se encuentra dentro de la División de datos. Aquí es donde agregará elementos de datos COBOL, a lo que comúnmente nos referimos como variables, en el programa.

Cobol

IDENTIFICATION DIVISION.
PROGRAM-ID. DISPLAY-RANDOM-NUMBER.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
    01 NumberOne PIC 9 VALUE 2.

Hablando de eso, COBOL también trabaja con datos como literales y constantes figurativas y eso es algo que veremos en las siguientes secciones.

Cobol

IDENTIFICATION DIVISION.
PROGRAM-ID. DISPLAY-RANDOM-NUMBER.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
    01 NumberOne PIC 9 VALUE 2.

Muy simple, se compone de partes que constan de un nivel único (01) y un nombre (NumberOne), una categoría de datos (PIC 9) y un valor opcional (VALUE 2).

Examinemos cada una de estas partes en una declaración COBOL en la siguiente sección.

Variables en la sintaxis de COBOL

Si bien la sintaxis que adopta COBOL parece difícil, en realidad es muy simple. Hay que recordar que este lenguaje se desarrolló en un momento diferente, por lo que puede parecer diferente.

Entonces, analicemos cada una de las partes de la manera más simple posible, comenzando con el número de nivel de elemento de datos 01:

Cobol

01 NumberOne PIC 9 VALUE 2.

Los elementos de datos están representados por números de nivel y se pueden usar para agrupar elementos de nivel inferior bajo elementos de nivel superior, como se muestra a continuación:

Cobol

IDENTIFICATION DIVISION.
PROGRAM-ID. DISPLAY-STUDENT-INFO.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
    01 StudentInfo.
        03 MyName PIC A(30) VALUE "My Name".
        03 MyStudentID PIC X(8) VALUE "FN107001".
        03 MyCGPA PIC 9(2)V9(2) VALUE 3.54.

Claramente, los elementos de datos con el número de nivel 03 se pueden agrupar bajo el número de nivel de elemento de datos 01 con la etiqueta StudentInfo.

Si bien puede elegir números entre 1 y 49 para darle a sus elementos de datos un sentido de jerarquía, debe señalarse que el número de nivel 01 es el más alto. Esto es lo que usaremos al declarar cada elemento de datos en un programa COBOL.

Cobol

01 NumberOne PIC 9 VALUE 2.

Lo que ahora identificamos como nombre de variable es lo que se conoce como nombre de datos en COBOL. Al igual que con la nomenclatura de variables en lenguajes populares, aquí hay algunas reglas a tener en cuenta cuando se trata de nombres de datos COBOL:

  1. Un nombre de datos puede usar letras az y AZ, así como números del 0 al 9. También se permite un guión.
  2. El mayor número de caracteres que puede tener un nombre de datos es de 30 caracteres.
  3. Cada nombre de datos debe tener al menos un alfabeto
  4. No se pueden usar guiones para comenzar o terminar un nombre de datos.
  5. Un nombre de datos no puede ser una «palabra reservada». Estas palabras clave que realizan ciertas funciones en COBOL. Los ejemplos de palabras reservadas incluyen MULTIPLY, COUNT, FOR, ELSE, DISPLAY y ACCESS.

Mientras tenga en cuenta estas reglas, recuerde que el nombre de los datos que seleccione debe describir qué contiene o para qué se usará esa variable.

Cobol

01 NumberOne PIC 9 VALUE 2.

A continuación, observamos la cláusula Picture (PIC 9), que define el tipo de datos y el tamaño del elemento. En pocas palabras, el sistema obtiene una «imagen» de esta declaración. Sirve como plantilla o ejemplo. Mirando la cláusula anterior, el símbolo 9 informa al compilador que debe aceptar solo números enteros de un solo dígito.

Ahora, ¿qué sucede si desea que el sistema acepte números de dos dígitos? Aquí está la declaración para eso:

Cobol

01 NumberTwo PIC 99 VALUE 22.
01 NumberThree PIC 9(2) VALUE 22.

Ambas declaraciones son igualmente aceptables ya que almacenarán el valor 22 para los nombres de datos NumberTwo y NumberThree. De manera similar, usamos los símbolos «S» y «V» para indicar signos y lugares decimales, como se muestra a continuación:

Cobol

01 NumberFour PIC S9(2) VALUE -32.
01 NumberFive PIC 9(2)V9(2) VALUE 21.65.

Por último, usamos la palabra clave VALUE para asignar un valor al nombre de los datos, como se muestra a continuación:

Cobol

01 NumberOne PIC 9 VALUE 2.

Por supuesto, hay otros tipos de datos que pueden declararse además del tipo numérico, como los tipos Alfabético y Alfanumérico. Usando un ejemplo anterior, aquí están los otros:

Cobol

03 MyName PIC A(30) VALUE "My Name".
03 MyStudentID PIC X(8) VALUE "FN107001".
03 MyCGPA PIC 9(2)V9(2) VALUE 3.54.

Como podemos ver arriba, PIC A se usa para declarar elementos de datos alfabéticos mientras que PIC X se usa para declarar elementos de datos alfanuméricos. Como es habitual, el valor encerrado entre paréntesis indica el número de dígitos o caracteres que deben asignarse a este elemento de datos.

Tómese un tiempo para comparar los valores asignados a los nombres de datos y comprenderá cómo se usa la cláusula de imagen para los tres tipos de elementos de datos.

Dicho esto, al declarar e inicializar elementos de datos en COBOL, no olvide los puntos después de cada declaración.

Literales en COBOL

Por definición, un literal en COBOL es simplemente el valor que asociaríamos con el elemento de datos. Esta es la categoría de datos más simple que se utiliza. Según el ejemplo utilizado anteriormente y como se muestra a continuación, el valor 2 asignado a NumberOne es literal.

Cobol

01 NumberOne PIC 9 VALUE 2.

Ahora, hay dos tipos de literales en COBOL: literales numéricos y alfanuméricos.

Como habrás adivinado, los literales numéricos son solo números, muy parecidos al valor que se muestra arriba. Otros ejemplos de literales numéricos incluyen -3 y 34.21. En otras palabras, los literales numéricos también admiten tanto signos como decimales.

Por otro lado, los literales alfanuméricos son valores que contienen letras y números o cualquiera de ellos. Los literales alfanuméricos suelen ir entre comillas. Los ejemplos de literales alfanuméricos incluyen «-321», «3.24», «34», «ans425» y «respuesta».

Una cosa que debe recordarse acerca de los literales: no tiene que declararlos en la División de datos de un programa COBOL, sino agregarlos directamente a la División de procedimientos. Esta es la razón por la cual el VALOR se considera opcional al declarar elementos de datos.

Constantes figurativas en COBOL

Ahora, hay ocasiones en las que el uso de literales para inicializar un elemento de datos puede no ser pertinente o necesario. Por ejemplo, es posible que desee completar un elemento de datos con una secuencia arbitraria de ceros. Esto es lo que puede hacer:

Cobol

01 myvar PIC X(10) VALUE ZEROES.

O si un elemento de datos debe completarse con otros caracteres, como comillas, espacios entre otros valores ASCII según el tamaño del elemento de datos. 

Aquí es donde las constantes figurativas, al ser palabras reservadas, pueden ser útiles y que llenarán todo el artículo. Un literal asignado por el usuario no podrá hacer esto.

Cobol

01 myvar PIC X(20) VALUE SPACES.

Otra razón por la que las constantes figurativas son buenas es por la legibilidad que ofrecen. Si compara las dos declaraciones de los elementos de datos, ¿cuál se lee mejor?

Cobol

01 myvar PIC X(10) VALUE ZEROES.
01 myvar2 PIC X(10) VALUE "0000000000".

La forma utilizada por la primera declaración parece mejor que la segunda, por razones obvias.

Ejemplo: ejecutar un programa COBOL de muestra

Ahora bien, la memoria muscular es muy importante a la hora de aprender a codificar. No podemos aprender a programar simplemente leyendo, sino que también tenemos que probar un programa COBOL de muestra. Aquí hay un ejemplo de un programa COBOL que muestra los detalles de un empleado en particular:

Cobol

IDENTIFICATION DIVISION.
PROGRAM-ID. DISPLAY-STUDENT-INFO.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
    01 eName PIC A(12) VALUE "Rahul Biswas".
    01 Occupation PIC A(10) VALUE "Programmer".
    01 EmployeeID PIC X(10) VALUE "MSFT107001".
    01 Salary PIC 9(2)V9(2) VALUE 3.23.
PROCEDURE DIVISION.
    DISPLAY "My Name:" eName
    DISPLAY "My Occupation: " Occupation
    DISPLAY "Employee ID: " EmployeeID
    DISPLAY "My CGPA: " Salary
    STOP RUN.
END PROGRAM DISPLAY-STUDENT-INFO.

Producción:

My Name:Rahul Biswas
My Occupation: Programmer
Employee ID: MSFT107001
My CGPA: 03.23

Una última cosa: la división de entorno, aunque no es necesaria en este ejemplo, se colocó solo para mostrarle el orden de las cuatro divisiones de un programa COBOL.

Habiendo dicho eso, nuestra introducción a las variables COBOL ha concluido. O como se les llama: elementos de datos.

Publicación traducida automáticamente

Artículo escrito por justdan40 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *