Lecciones del módulo (1/2)
Registros y Estructuras de Grupo
En COBOL, las variables elementales se pueden agrupar dentro de una estructura jerárquica llamada estructura de grupo o registro (record). Esto permite tratar un conjunto de datos relacionados tanto como una sola entidad (por ejemplo, para copiarlos o mostrarlos) como campos individuales.
Números de nivel y relaciones jerárquicas
Para definir un registro, se utilizan los números de nivel en la DATA DIVISION:
- Nivel
01: Define el registro principal (el nombre del grupo). No tiene una cláusulaPICTUREpropia, ya que su tamaño está determinado por la suma de los campos internos. - Niveles subordinados (
05,10,15, etc.): Identifican los campos subordinados pertenecientes al grupo de nivel superior. Pueden ser variables elementales (con cláusulaPIC) o a su vez otros grupos (subregistros).
01 WS-EMPLOYEE-RECORD.
05 WS-EMP-ID PIC 9(5).
05 WS-EMP-NAME PIC X(20).
05 WS-EMP-SALARY PIC 9(6)V99.
En este ejemplo, WS-EMPLOYEE-RECORD es una estructura de grupo que contiene tres campos subordinados. Si hacemos referencia a WS-EMPLOYEE-RECORD, estamos leyendo o escribiendo los 8 + 20 + 5 = 33 caracteres del registro de una sola vez.
La instrucción MOVE y las estructuras de grupo
Podemos asignar valores a los campos elementales individuales:
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.
O podemos copiar un registro completo en otro registro compatible en una sola operación:
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.
Pruébalo tú mismo
Declara una estructura de grupo 01 llamada WS-STUDENT-RECORD que contenga tres campos subordinados de nivel 05: WS-STUDENT-ID (numérico de 5 dígitos), WS-STUDENT-NAME (alfanumérico de 15 caracteres) y WS-STUDENT-GPA (numérico con 1 dígito entero y 2 decimales).
Mostrar pista
Usa la sintaxis correcta: 01 WS-STUDENT-RECORD. (con punto y sin PIC), seguido en las líneas siguientes por los niveles 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). y 05 WS-STUDENT-GPA PIC 9(1)V99.
Solución disponible después de 3 intentos
Completa la PROCEDURE DIVISION moviendo el valor 10023 a WS-EMP-ID, el texto 'JOHN DOE' a WS-EMP-NAME y finalmente muestra la estructura de grupo WS-EMPLOYEE-RECORD usando DISPLAY.
Mostrar pista
Usa MOVE 10023 TO WS-EMP-ID. y MOVE 'JOHN DOE' TO WS-EMP-NAME. para asignar valores a las variables, luego escribe DISPLAY WS-EMPLOYEE-RECORD. y finalmente STOP RUN.
Solución disponible después de 3 intentos