38
Cobol Common Bussines Oriented Language Uma das linguagens de programação mais usadas, o COBOL é uma linguagem orientada para negócios, com capacidade de processamento de grandes arquivos.

Cobol Basico

Embed Size (px)

Citation preview

Page 1: Cobol Basico

Cobol

Common Bussines Oriented Language

Uma das linguagens de programação mais usadas, o COBOL é uma linguagem orientada para negócios, com capacidade de processamento de grandes arquivos.

Page 2: Cobol Basico

Formato Fonte Cobol

Regras de posicionamento

....|. . ..1....|. ...2....|....3....|....4....|....5....|....6....|....7.. ..|.....

• Colunas de 1 a 6: Área de numeração seqüencial• Coluna 7: Área de indicação• Colunas de 8 a 11: Área A• Colunas de 12 a 72: Área B• Colunas de 73 a 80: Comentários

Page 3: Cobol Basico

Formato Fonte Cobol

• Área de numeração seqüencial: – numerar as linhas do fonte, colocar comentários.

• Área de indicação:– (-) hífen indica continuação de um texto que foi iniciado na linha

anterior.– (*) asterisco indica que toda a linha deve ser tratada como um

comentário.– (/) barra indica salto de página.

• Área A e Área B:– Posição a partir do qual se escreve o nome das divisões, seções,

parágrafos, sentenças, instruções Cobol.• Comentários

Page 4: Cobol Basico

Formato Fonte Cobol

Page 5: Cobol Basico

Formato Fonte Cobol

• Caracteres: –De ‘0’ a ‘9’;–De ‘A’ a ‘Z’;–Espaços, parênteses, menor que, maior que, ponto, sinal de mais, sinal de menos, dólar, E comercial, arroba, igual, vírgula, barra, asterisco, apóstrofes.

• Palavra:•Uma palavra não deve exceder a 30 caracteres.•O espaço em branco não é um caracter permitido para a formação de palavras.•Uma palavra não pode começar nem terminar com hífen (-).

Page 6: Cobol Basico

Formato Fonte Cobol

• Há palavras que são reservadas do Cobol, com propósitos próprios:– Constante figurativa: É uma palavra associada a um valor

particular. Ex: ZEROS, SPACES, QUOTES, HIGH-VALUES, LOW-VALUES.

Page 7: Cobol Basico

Formato Fonte Cobol

– Palavras opcionais: Seu uso é opcional. Ex: IS, THANIFCPO-A IS GREATER THAN 10IFCPO-A GREATER 10

– Palavras-chave: Determinar a função da cláusula ou comando. Ex: ADD, READ, WRITE, IF.

Page 8: Cobol Basico

Formato Fonte Cobol• Cláusula Picture: É usada para descrição de informações sobre

itens, tais como: tamanho, sinal, tipo. – ALFABÉTICO -> é representado por letras mais o espaço, e o carácter

usado é a letra “A”. – ALFANUMÉRICO -> é representado por letras, números e caracteres

do Cobol. O caracter usado é a letra “X”. A representação de dados não pode exceder a 120 caracteres.

– NUMÉRICO -> usa-se para representação exclusiva de itens numéricos. Os caracteres usados são: “9”, “V”, “P”, “S”.•“9” = é utilizado para indicar a posição do campo que contém um dígito de “0” a “9”.•“V” = é usado para mostrar a posição da vírgula decimal. O ponto decimal, se colocado, não faz parte do item.•“P” = representa um dígito numérico zero (0).•“S” = indica a presença de sinal, deve ser colocado antes do “9”.

Page 9: Cobol Basico

Formato Fonte Cobol

• Edição: utiliza-se para itens que devem ser impressos ou enviados para tela de programas on-line. – (9), (V), (P) -> são usados de maneira semelhante ao uso dos itens

numéricos;– (.) -> o ponto decimal, quando usado, é inserido na posição indicada;– (Z) -> indica a supressão de zeros não significativos;– (*) -> é usado como proteção de um número impresso;– (CR), (DB) -> significam CR (crédito) e DB (débito). Usa-se somente

quando o número for negativo. Caso o número seja positivo, não aparecerá nada;

– (,), (0), (B) -> são símbolos de edição que são inseridos na impressão;– ($), (+), (-) -> são impressos na posição indicada.

Page 10: Cobol Basico

Formato Fonte Cobol• Definição Picture Valor Real Na memória

9(04) 9999 502 5029V9(2) 9V99 1,25 1259(03) 999PP 43700 437S9(02) S99 -21 21-9(05) 99.999 10.987 109879(04)V99 Z.ZZZ,99 25,50 0025509(03) ZZZ 0009(03) **9 422 4229(03) *** *** 000S9(03)V99 999,99CR 800,00CR 80000(-)9(04) 990099 110025 11259(06) 99B99B99 12 13 15 1213159(03) $999 $371 371S9(02) -99 -15 15(-)S9(02) -99 16 16 S9(02) +99 15 15(-)S9(02) +99 +16 16(+)S9(02) 99- 15- 15(-)S9(04) -.--9 -12 0012(-)

Page 11: Cobol Basico

Formato Fonte Cobol

• Opção Computacional (COMP): Só podem ser usados para itens numéricos (COMP, COMP-1, COMP-2, COMP-3, COMP-4).– COMP ou COMP-4 (binário):

• Bytes = 2 se tamanho do campo com COMP for de 1 a 4, half-word;• Bytes = 4 se tamanho do campo com COMP for de 5 a 9, full-word;• Bytes = 8 se tamanho do campo com COMP for de 10 a 18, double-

word;– COMP-3 (compactado):

• É decimal interno (compactado). Campos até 18 dígitos ou 10 bytes. 1 byte usa 2 dígitos ou 1 dígito mais o sinal.

– COMP-1 e COMP-2 (ponto-flutuante): • é um formato de representação digital de números reais.

Page 12: Cobol Basico

Formato Fonte Cobol

Page 13: Cobol Basico

Formato Fonte Cobol

Page 14: Cobol Basico

Formato Fonte Cobol

• Cláusula Redefines– É usada para redescrever uma área.– A redefinição deverá conter a mesma quantidade de bytes do campo

ou área anterior e estar no mesmo nível.

Page 15: Cobol Basico

Organização do Código

Divisões

Seções

Parágrafos

Sentenças

Comandos / Cláusulas

Page 16: Cobol Basico

Código Fonte Cobol

• Possui quatro divisões que devem ser utilizadas nesta ordem:

– IDENTIFICATION DIVISION identificação– ENVIRONMENT DIVISION equipamento– DATA DIVISION dados– PROCEDURE DIVISION procedimentos

Page 17: Cobol Basico

Identification Division

• Esta divisão possui a seguinte estrutura:– PROGRAM-ID. nome-programa.– AUTHOR. nome do autor do programa.– INSTALLATION. local de uso ou geração do programa.– DATE-WRITTEN. data da elaboração do programa.– DATE-COMPILED. área para o compilador inserir data.– SECURITY. informações sobre acesso ao pgm/arq.– REMARKS. comentários para documentação.

O único parágrafo obrigatório é o PROGRAM-ID. O nome do programa deve ser uma palavra com até 8 caracteres (letras ou números), começando por uma letra.

Page 18: Cobol Basico

Identification Division

Page 19: Cobol Basico

Environment DivisionÉ dividida em duas seções:

Configuration Section Input-Output Section

• CONFIGURATION SECTION: destina-se a uma descrição geral do ambiente do computador.

–SOURCE-COMPUTER, OBJECT-COMPUTER (comentários)–SPECIAL-NAMES: o separador de decimais é o mais freqüentemente usado, indicando que será usada a vírgula para separar as casas decimais.

Page 20: Cobol Basico

Environment Division

Page 21: Cobol Basico

Environment Division

O nome externo é o nome pelo qual o arquivo será reconhecido pelo cartão “DD” do “JCL”. JCL (Job control language ou linguagem de programação de serviços) tem a função de solicitar e informar recursos e dispositivos ao sistema operacional. JOB (serviço) é composto por um ou mais programas que serão processados dentro de uma sequência. Uma interrupção causada pelo programa chamamos de ABEND. Exemplo de jcl:

Page 22: Cobol Basico

Data Division

• Divisão do programa onde são definidos os dados, incluindo todas as variáveis e constantes necessárias, assim como o layout dos registros dos arquivos.

• Essa divisão possui 5 seções que devem aparecer na ordem especificada. – FILE SECTION.– WORKING-STORAGE SECTION.– LINKAGE SECTION.– COMMUNICATION SECTION.– REPORT SECTION.

Caso alguma seção não seja necessária, deve ser omitida.

Page 23: Cobol Basico

Data Division

FILE SECTIONDescreve o conteúdo e a organização dos arquivos.Indicadores de nível:

– FD - File Description – Descrição de arquivos – SD - Sort Descrition – Descrição de ‘sort-files’– RD - Report Description – Descrição de relatórios– CD - Communication Descriprion – Descrição de comunicação

Page 24: Cobol Basico

Data DivisionFD nome do arquivo BLOCK CONTAINS (tamanho do registro físico) RECORD CONTAINS (tamanho do registro lógico) RECORDING MODE (formato do arquivo) LABEL RECORD (formato do label) DATA RECORD (nome do registro).

Page 25: Cobol Basico

Data Division

WORKING-STORAGE SECTION

Descreve informações sobre as áreas de trabalho, descrição de tabelas, área para DB2, lay-out, etc. Declaração das variáveis e constantes do programa.

Números de níveis:• Servem para estruturar logicamente o registro. Está subdividido em:

– Itens elementares (não possuem divisões);– Itens de grupo

• O números de níveis estão entre 01 e 49, porém quanto menor for o nível, mais importante ele será dentro da definição.

Page 26: Cobol Basico

Data Division

Números de nível:• 01, 03, 05

Itens de grupo:• CNPJ-CPF, WAX-CPF-CNPJ-R1

Itens elementares:• WAX-NO-CPF-CNPJ-R1, WAX-NO-FIL-CNPJ-R1, WAX-NO-DG-CPF-CNPJ-R1

Page 27: Cobol Basico

Data Division

Descrição de tabela

Page 28: Cobol Basico

Data Division

Descrição de área de comunicação

Descrição de área de banco de dados

Page 29: Cobol Basico

Data Division

Níveis especiais:• O item (77) serve para definir acumuladores e áreas auxiliares. • O item (88) especifica condições que devem ser associadas a valores

particulares. Os valores definidos no nível “88” devem estar em ordem crescente.

77 AC-LIDOS PIC 9(05) VALUE 0.77 AUX-NOME PIC X(20).

01 WRK-REG.02 WRK-SEXO PIC X(01).

88 FEMI VALUE ‘F’. 88 MASC VALUE ‘M’.

Page 30: Cobol Basico

Data Division

LINKAGE SECTIONUsada para recebimento de parâmetros -- estabelecer comunicação -- entre

dois programas ou recebimento de parâmetros via JCL (PARM).Estrutura:

–Variável PIC S9(04) COMP que recebe o tamanho dos dados;–Variável que irá conter, em tempo de execução, os dados informados através do PARM; ela deve ter tamanho suficiente para receber todos os dados.

Page 31: Cobol Basico

Data Division

Communication SectionSeção que descreve os dados que servem de interface entre o Message

Control System (MCS) e o programa Cobol. (estabelece ligações entre o programa cobol e programa de controle de teleprocessamento).

Report SectionSeção que descreve os relatórios que o programa deve emitir. Muito utilizado

no Report Writer.

Page 32: Cobol Basico

Procedure DivisionEsta divisão controla a execução do programa através de comandos executáveis descritos em ordem lógica.

inicialização

abertura de arquivos

corpo do programa

operações diversas

finalização

fechamento dos arquivos

Procedure Division

Page 33: Cobol Basico

Procedure Division

Comandos de Manipulação de ArquivosOPEN: Abre arquivo de entrada e saída. Formato:

OPEN INPUT (NOME-ARQUIVO-1) (NOME-ARQUIVO-2) OUTPUT (NOME-ARQUIVO-3) I-O (NOME-ARQUIVO-4)

INPUT -> arquivos de leituraOUTPUT -> arquivos de gravação e impressãoI-O -> arquivos de acesso-direto (leitura e gravação)

Page 34: Cobol Basico

Procedure Division

READ: Ler um registro do arquivo de entrada. Formato:

READ (NOME-ARQUIVO). ouREAD (NOME-ARQUIVO) INTO (AREA-LAYOUT). OuREAD (NOME-ARQUIVO) INTO (AREA-LAYOUT)

AT ENDINTO -> faz com que o registro seja lido e movido para área definida dentro da “WORKING-STORAGE” ou “LINKAGE SECTION”. Se definirmos a estrutura do arquivo na própria FD não necessitamos desta cláusula. AT END -> é uma das opções para o controle de fim de arquivo.

Page 35: Cobol Basico

Procedure Division

WRITE: Transfere um registro do programa para um arquivo de saída ou impressor de relatórios. Formato: gravação : WRITE (NOME-REGISTRO) FROM (AREA-1)Impressão: WRITE (NOME-REGISTRO) FROM (AREA-1) AFTER/BEFORE ADVANCING (INTEIRO) LINES - FROM -> faz com que uma área seja movida da “WORKING-STORAGE SECTION” para o registro, e seja gravado ou impresso. - ADVANCING -> refere-se ao controle do posicionamento vertical de cada linha, se não for usado o salto automático de linhas no programa. Não podem ser usados os dois controles no mesmo programa.- AFTER ou BEFORE -> é o controle de salto. O “AFTER” indica que primeiro pula a quantidade de linhas especificadas ou (salta de página) para depois imprimir. O “BEFORE” primeiro imprime para depois saltar de linhas ou (pular de página).

Page 36: Cobol Basico

Procedure Division

CLOSE: é utilizado para fechar os arquivos que foram abertos. Quando este comando não for utilizado, o próprio sistema se encarregará de fechá-los. Formatos:CLOSE (NOME-ARQUIVO).

Page 37: Cobol Basico

Procedure Division

GOBACK: Termina o processamento de uma ligação entre programas, ou pode ser utilizado como o “STOP RUN”. Muito utilizado em programas on-line e módulos.

Formato: GOBACK.

Page 38: Cobol Basico

Procedure Division

STOP RUN: Termina o processamento de um programa. Formato:

STOP RUN. Este comando é obrigatório, podendo existir mais de um comando dentro do

mesmo programa.