Lições do módulo (1/2)
Itens e registros de grupo
No COBOL, variáveis elementares podem ser agrupadas em uma estrutura hierárquica chamada item de grupo ou registro. Isso permite tratar um conjunto de dados relacionados como uma entidade única (por exemplo, para copiá-los ou exibi-los) ou como campos individuais.
Números de nível e relações hierárquicas
Para definir um registro, você usa números de nível em DATA DIVISION:
- Nível
01: Define o registro principal (o nome do grupo). Não possui cláusula própriaPICTUREporque seu tamanho é determinado pela soma de seus campos internos. - Níveis subordinados (
05,10,15, etc.): Identifique os campos subordinados pertencentes ao grupo de nível superior. Podem ser variáveis elementares (com cláusulaPIC) ou, por sua vez, outros itens de grupo (sub-registros).
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.Neste exemplo, WS-EMPLOYEE-RECORD é uma estrutura de grupo que contém três campos subordinados. Se fizermos referência a WS-EMPLOYEE-RECORD, lemos ou escrevemos todos os 5 + 20 + 8 = 33 caracteres do registro de uma vez.
A instrução MOVE e os itens do grupo
Podemos atribuir valores a campos elementares individuais:
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.Ou podemos copiar um registro inteiro para outro registro compatível em uma única operação:
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.Experimente você mesmo
Declare uma estrutura de grupo 01 denominada WS-STUDENT-RECORD contendo três subcampos do nível 05: WS-STUDENT-ID (numérico de 5 dígitos), WS-STUDENT-NAME (alfanumérico de 15 caracteres) e WS-STUDENT-GPA (numérico com 1 dígito inteiro e 2 decimais).
Mostrar dica
Use a sintaxe: 01 WS-STUDENT-RECORD. (com ponto e sem PIC), seguido nas próximas linhas pelo nível 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). e 05 WS-STUDENT-GPA PIC 9(1)V99.
Solução disponível após 3 tentativas
Conclua PROCEDURE DIVISION movendo o valor 10023 para WS-EMP-ID, o texto 'JOHN DOE' para WS-EMP-NAME e, finalmente, exiba a estrutura de grupo WS-EMPLOYEE-RECORD usando DISPLAY.
Mostrar dica
Use MOVE 10023 PARA WS-EMP-ID. e MOVER 'JOHN DOE' PARA WS-EMP-NAME. para atribuir valores e escreva DISPLAY WS-EMPLOYEE-RECORD. e finalmente PARE DE EXECUÇÃO.
Solução disponível após 3 tentativas