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