COBOL - Tipos de datos

La división de datos se utiliza para definir las variables utilizadas en un programa. Para describir datos en COBOL, uno debe comprender los siguientes términos:

  • Nombre de datos
  • Número de nivel
  • Cláusula de imagen
  • Cláusula de valor
01            TOTAL-STUDENTS            PIC9(5)            VALUE '125'.
|                    |                    |                    |
|                    |                    |                    |
|                    |                    |                    | 
Level Number     Data Name           Picture Clause       Value Clause

Nombre de datos

Los nombres de los datos deben definirse en la División de datos antes de usarlos en la División de procedimientos. Deben tener un nombre definido por el usuario; no se pueden utilizar palabras reservadas. Los nombres de los datos hacen referencia a las ubicaciones de la memoria donde se almacenan los datos reales. Pueden ser de tipo elemental o grupal.

Ejemplo

El siguiente ejemplo muestra nombres de datos válidos y no válidos:

Valid:
   WS-NAME
   TOTAL-STUDENTS
   A100
   100B

Invalid:
   MOVE            (Reserved Words)
   COMPUTE         (Reserved Words)
   100             (No Alphabet)
   100+B           (+ is not allowed)

Número de nivel

El número de nivel se utiliza para especificar el nivel de datos en un registro. Se utilizan para diferenciar entre elementos elementales y elementos de grupo. Los elementos elementales se pueden agrupar para crear elementos de grupo.

No Señor. Número de nivel y descripción
1

01

Entrada de descripción de registro

2

02 to 49

Elementos elementales y grupales

3

66

Cambiar el nombre de los elementos de la cláusula

4

77

Elementos que no se pueden subdividir

5

88

Entrada de nombre de condición

  • Elementary itemsno se puede dividir más. El número de nivel, el nombre de los datos, la cláusula de imagen y la cláusula de valor (opcional) se utilizan para describir un elemento elemental.

  • Group itemsconstan de uno o más elementos elementales. El número de nivel, el nombre de los datos y la cláusula de valor (opcional) se utilizan para describir un elemento de grupo. El número de nivel de grupo es siempre 01.

Ejemplo

El siguiente ejemplo muestra elementos de grupo y elementales:

DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME    PIC X(25).                               ---> ELEMENTARY ITEM 
01 WS-CLASS   PIC 9(2)  VALUE  '10'.                   ---> ELEMENTARY ITEM

01 WS-ADDRESS.                                         ---> GROUP ITEM   
   05 WS-HOUSE-NUMBER    PIC 9(3).                     ---> ELEMENTARY ITEM
   05 WS-STREET          PIC X(15).                    ---> ELEMENTARY ITEM
   05 WS-CITY            PIC X(15).                    ---> ELEMENTARY ITEM
   05 WS-COUNTRY         PIC X(15)  VALUE 'INDIA'.     ---> ELEMENTARY ITEM

Cláusula de imagen

La cláusula de imagen se utiliza para definir los siguientes elementos:

  • Data typepuede ser numérico, alfabético o alfanumérico. El tipo numérico consta únicamente de dígitos del 0 al 9. El tipo alfabético consta de letras de la A a la Z y espacios. El tipo alfanumérico consta de dígitos, letras y caracteres especiales.

  • Signse puede utilizar con datos numéricos. Puede ser + o -.

  • Decimal point positionse puede utilizar con datos numéricos. La posición asumida es la posición del punto decimal y no se incluye en los datos.

  • Length define el número de bytes usados ​​por el elemento de datos.

Símbolos utilizados en una cláusula de imagen:

No Señor. Símbolo y descripción
1

9

Numérico

2

A

Alfabético

3

X

Alfanumérico

4

V

Decimal implícito

5

S

Firmar

6

P

Decimal asumido

Ejemplo

El siguiente ejemplo muestra el uso de la cláusula PIC:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-NUM1 PIC S9(3)V9(2).
   01 WS-NUM2 PIC PPP999.
   01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45.
   01 WS-NAME PIC A(6) VALUE 'ABCDEF'.
   01 WS-ID PIC X(5) VALUE 'A121$'.

PROCEDURE DIVISION.
   DISPLAY "WS-NUM1 : "WS-NUM1.
   DISPLAY "WS-NUM2 : "WS-NUM2.
   DISPLAY "WS-NUM3 : "WS-NUM3.
   DISPLAY "WS-NAME : "WS-NAME.
   DISPLAY "WS-ID : "WS-ID.
STOP RUN.

JCL para ejecutar el programa COBOL anterior -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:

WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$

Cláusula de valor

La cláusula de valor es una cláusula opcional que se utiliza para inicializar los elementos de datos. Los valores pueden ser literal numérico, literal alfanumérico o constante figurativa. Se puede utilizar tanto con elementos grupales como elementales.

Ejemplo

El siguiente ejemplo muestra el uso de la cláusula VALUE:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-NUM1 PIC 99V9 VALUE IS 3.5.
   01 WS-NAME PIC A(6) VALUE 'ABCD'.
   01 WS-ID PIC 99 VALUE ZERO.

PROCEDURE DIVISION.
   DISPLAY "WS-NUM1 : "WS-NUM1.
   DISPLAY "WS-NAME : "WS-NAME.
   DISPLAY "WS-ID   : "WS-ID.
STOP RUN.

JCL para ejecutar el programa COBOL anterior -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:

WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID   : 00