COBOL DB2- CICS Prof. Maromo [Aula 6]
Parágrafos Procedure Name
Parágrafos Podemos organizar os comandos (procedimentos) declarados na Procedure Division em grupos, que dão maior clareza à leitura do programa. Esta facilidade que a linguagem permite é denominada Procedure Name, Label ou nome-de-procedimento e facilita em muito a documentação de um programa.
Procedures Names [Obs] Os procedure-names devem ser digitados na coluna 08. Devem ter um ponto ao seu final (e na linha anterior se tiver algum comando que o anteceda).
Procedure Name [Exemplo]
Comando GO TO
Comando GO TO Este comando desvia o fluxo do programa para o nome-deprocedimento especificado, ou seja, transfere o controle do processamento para outra parte do programa.
Exemplo Comando GO TO
Comando MOVE
Comando MOVE Ele nos permite compor o conteúdo de uma variável (campo) com o valor de outra variável ou alguma constante, obedecendo algumas regras: quem define a forma como será o preenchimento é o campo receptor. se o receptor for um campo numérico, o preenchimento se dará da direita para a esquerda e, se o campo receptor for maior que o emissor, haverá o preenchimento com zeros à esquerda, se o campo receptor for menor que o emissor, haverá a perda (truncamento) dos dígitos excedentes à esquerda. se o receptor for um campo alfabético ou alfanumérico, o preenchimento se dará da esquerda para a direita e, se o campo receptor for maior que o emissor, haverá o preenchimento com brancos à direita, se o campo receptor for menor que o emissor, haverá a perda (truncamento) dos caracteres excedentes à direita. um item de grupo é considerado como alfanumérico pelo compilador. Pode-se mover itens elementares como itens de grupo. Pode-se mover um item de grupo para outro item de grupo, mesmo que ambos (ou apenas um deles) possuam sub-níveis.
Exemplo: Comando MOVE
Inicialização de Variáveis
Inicialização de variáveis É muito importante no desenvolvimento de um sistema. Permite mostrar o que há nas variáveis. Foi ensinado o modo de inicialização de variáveis na própria declaração da variável, mas também pode-se inicializar uma variável nos procedimentos do programa.
Exemplo Execute esse Exemplo.
Comando INITIALIZE
INITIALIZE Compõe um campo ou um conjunto de campos pertencentes a um item de grupo com: zeros para campos numéricos ou numéricos editados e brancos para campos alfabéticos ou alfanuméricos. Facilita a inicialização de variáveis.
Exemplo Execute esse Exemplo.
Cláusula DECIMAL-POINT IS COMMA
Cláusula DECIMAL-POINT IS COMMA Esta cláusula, inserida na ENVIRONMENT DIVISION e acompanhada pelo atributo SPECIAL-NAMES, permite a mudança do padrão americano de apresentação de valores (vírgula para separação de milhares de dólares e ponto para separação de centavos) para o padrão brasileiro (ponto para separação de milhares de reais e vírgula para separação de centavos).
Exemplo
Máscara de Edição
Máscara de Edição Tem como objetivo APENAS a exibição de valores em tela. As mesmas não tem funcionalidade para fazer operações aritméticas, comparações, nem servir de parâmetros para outros programas. Então para usar variáveis numéricas devese receber o valor da variável na variável do tipo máscara e em seguida mover o valor da variável máscara para a variável numérica.
Exemplo
Execute o Exemplo Abaixo Execute esse Exemplo.
Comando STOP
Comando STOP Este comando suspende temporariamente o programa, até que se tecle ENTER. IDENTIFICATION DIVISION. IDENTIFICATION DIVISION. PROGRAM-ID. AULA0626. PROGRAM-ID. AULA0626. *Identificacao do programa *Identificacao do programa ENVIRONMENT DIVISION. ENVIRONMENT DIVISION. SPECIAL-NAMES. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DECIMAL-POINT IS COMMA. *Identificacao do computador. *Identificacao do computador. DATA DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. WORKING-STORAGE SECTION. 77 NOME-QUALQUER PIC X(10). 77 NOME-QUALQUER PIC X(10). PROCEDURE DIVISION. PROCEDURE DIVISION. PEGA-NOME-QUALQUER. PEGA-NOME-QUALQUER. DISPLAY " " AT 0101 ERASE EOS BACKGROUND-COLOR 0. DISPLAY " " AT 0101 ERASE EOS BACKGROUND-COLOR 0. DISPLAY "DIGITE UM NOME QUALQUER" AT 1015. DISPLAY "DIGITE UM NOME QUALQUER" AT 1015. ACCEPT NOME-QUALQUER AT 1050 WITH AUTO UPPER PROMPT. ACCEPT NOME-QUALQUER AT 1050 WITH AUTO UPPER PROMPT. IF NOME-QUALQUER EQUAL SPACES IF NOME-QUALQUER EQUAL SPACES THEN THEN STOP "NOME INVALIDO" STOP "NOME INVALIDO" GO TO PEGA-NOME-QUALQUER GO TO PEGA-NOME-QUALQUER END-IF. END-IF. DISPLAY "NOME INFORMADO: " AT 1115. DISPLAY "NOME INFORMADO: " AT 1115. DISPLAY NOME-QUALQUER AT 1150. DISPLAY NOME-QUALQUER AT 1150. STOP RUN. STOP RUN. Execute esse Exemplo.
Modo de se parar a tela sem o uso do STOP A desvantagem do STOP é que após o seu uso, pode-se apenas sair dele com a tecla ENTER, inviabilizando seu uso, pois o usuário pode digitar outras teclas. Uma outra maneira é declarar uma variável de uma posição apenas, e quando for mostrar a mensagem, dar o DISPLAY para a mensagem e depois dar o ACCEPT da variável declarada (de uma posição) com parâmetros AUTO e NO- ECHO em uma posição da tela que o usuário não irá perceber.
Exemplo Execute esse Exemplo.
Exercícios 1) Faça um exercício de nome PROG06.CBL que o usuário digite um valor numérico em uma variável numérica, de 10 posições, e após digitar, mostre o valor em uma variável de máscara de edição, de 10 posições. 2) Faça um exercício de nome PROG07.CBL que o usuário digite um valor numérico em uma variável numérica, e após digitar, inicialize a variável usando o comando INITIALIZE e depois mostre na tela a variável inicializada. 3) Fazer um programa de nome PROG08.CBL para digitação de um cadastro de candidatos, com a seguinte tela [próximo slide]
Resultado
Fim da Aula 6 Obrigado! Maromo