Beruflich Dokumente
Kultur Dokumente
INTRODUO
A palavra COBOL a abreviao de Commom Busines Oriented Language. Esta uma linguagem de
computador orientada para negcios. As regras que comandam o uso da linguagem a fazem aplicvel a
problemas comerciais. Criada em 1959, tem passado por grandes e constantes aperfeioamentos, inclusive
com verses WINDOWS.
Todas as instrues so codificadas em ingls, em vez de cdigos complexos. So programas mais extensos,
porm mais claros e de mais rpidos entendimento e assimilao, no s da linguagem como dos programas
escritos nela.
AS DIVISES
Todo programa COBOL consiste, obrigatoriamente, em 4 divises separadas. Cada diviso escrita em
ingls, para diminuir o esforo e facilitar a compreenso do programa por pessoas alheias ao processamento
de dados. Cada uma das 4 divises tem funes especficas.
REGRAS BSICAS
Os nomes de divises, sees e pargrafos devem ser codificados na margem A (coluna 8). Todas as outras
declaraes so codificadas na margem B (coluna 12).
Cada declarao termina com um ponto final, que deve ser seguido de um espao em branco.
Os nomes de diviso e seo devem aparecer na linha sem nenhuma outra entrada. Nomes de pargrafos
podem aparecer na mesma linha de uma ou mais declaraes, sempre seguidos de ponto e espao em branco.
Regras para formao de nomes:
1. Arquivos: de 1 at 30 caracteres;
nenhum caracter especial;
nenhum caracter branco no meio;
pelo menos um caracter alfabtico.
2. Dados (registros, campos, etc): de 1 at 30 caracteres;
no podem comear nem terminar com hfen;
pelo menos um caracter alfabtico.
no podem ser palavra reservada do COBOL.
podem conter letras, nmeros ou hfens e mais nenhum caracter especial;
3. Literais Numricos: mximo de 18 dgitos;
sinal (+ ou -) esquerda do nmero;
ponto decimal, que no pode ser o ltimo caractere.
4. Literais No Numricos: mximo de 120 caracteres, incluindo espaos branco.
qualquer caractere especial;
devem estar entre aspas, normalmente simples.
PROGRAMA
IDENTIFICATION
DIVISION
ENVIRONMENT
DIVISION
CONFIGURATION
SECTION
INPUT-OUTPUT
SECTION
DATA
DIVISION
FILE
SECTION
WORKING-STORAGE
SECTION
REPORT
SECTION
SCREEN
SECTION
7 8
12
ENVIRONMENT DIVISION.
[CONFIGURATION SECTION.]
[SOURCE-COMPUTER. computador a ser utilizado na compilao do programa.]
PROCEDURE
DIVISION
7 8
12
DATA DIVISION.
[FILE SECTION : * descreve o contedo e a organizao interna de todos os arquivos utilizados no
programa.
uma para cada arquivo descrito na clusula SELECT da CONFIGURATION SECTION
da ENVIRONMENT DIVISION. *
FD <nome de arquivo>
LABEL RECORD {OMMITED} * para arquivos de impresso *
{STANDARD} * para arquivos em disco *
VALUE OF FILE-ID c:\nome-externo.extenso * mximo 8 caracteres no nome-externo *
[BLOCK CONTAINS <nmero-inteiro> RECORD]
[RECORD CONTAINS <nmero-inteiro> CHARACTERS] * soma do tamanho de todos os
campos do registro *
[DATA RECORD <nome-registro>.] ]
01 <nome-registro>. * item de grupo *
03 <nome-campo1>
PIC X(<nmero-inteiro>). * item elementar *
03 <campo3>
PIC ZZZ9.
<reg-detal>.
03 FILLER
03 <campo1>
03 FILLER
03 <campo2>
03 <campo3>
03 <campo4>
*
01
PROCEDURE DIVISION
A - COMANDOS ARITMTICOS
CLUSULA ADD -
soma
A+B=B
A+B=C
C - (A + B)
C = B-A
A = BxA
C = BxA
A = B/A
C = B/ A
+
/
*
**
A = B - (C + D2)
J = 10 / 2 + 8
[I-O
READ
READ
READ
READ
CADASTRO.
MOV INTO MOV-WS.
CADASTRO AT END MOVE 1 TO FIM-CAD.
FUNC INVALID KEY PERFORM ROTERRO.
.
[ INVALID KEY] - usado para arquivo de acesso indexado ou randmico para validar
o campo chave do arquivo.
C - COMANDOS DE MANIPULAO
SET IND 2 TO M.
SET IND UP BY 2.
SET IND2 DOWN BY 3.
D - COMANDO DE DESVIOS
EX.: INICIO.
PERFORM LER2.
INICIO
LER1
LER2
: PERFORM <nome-pargrafo1> THRU <nome-pargrafo2>.
EX.: INICIO
PERFORM LER1 THRU LER2.
INICIO
LER1
LER2
: PERFORM <nome-pargrafo> <nome-dado>
TIMES.
<nmero-inteiro>
EX.: PERFORM PROCESSA 20 TIMES.
: PERFORM <nome-pargrafo> UNTIL <condio>.
EX.: PERFORM PROCESSAMENTO UNTIL FIM-ARQ = S.
E - COMANDO DE PARADA
F - COMANDO DE CONDIO
CLUSULA IF THEN ELSE - se / ento / seno
qualquer sentena que executa uma ou mais de uma operao dependendo da ocorrncia de uma ou mais de
uma condio.
FORMATO : IF <condio1>...<condion>
THEN <sentena1>...<sentenaN> - se condio verdadeira.
ELSE <sentena1>...<sentenaN>. - se condio falsa.
EX.:
IF A > B
THEN ADD A TO B
ADD A TO C
ELSE ADD B TO C.
OBS.: TESTES DE CONDIO >, < E =. Estes sinais equivalem s seguintes palavras reservadas:
>
<
=
GREATER THAN
LESS THAN
EQUAL TO
PROCEDURE DIVISION
ESQUEMA BSICO
INICIALIZAO
ABERTURA DE ARQUIVOS
INICIALIZAO DE VARIVEIS
CORPO PRINCIPAL
OPERAES DIVERSAS
FINALIZAO
FECHAMENTO DE ARQUIVOS
TOTALIZAO/RESUMOS
8
12
PROCEDURE DIVISION.
000-ROTINA BSICA.
PERFORM 100-INICIO-PROC.
PERFORM 500-PROCESSAMENTO UNTIL <campo-flag> = 1.
PERFORM 900-FINAL-PROC.
STOP RUN.
*
100-INICIO-PROC.
OPEN INPUT CADNOTA
OUTPUT RELATO.
READ CADNOTA AT END MOVE 1 TO FIM-CAD.
MOVE ZEROS TO <campo-aux1> <campo-aux2> ......<campo-auxn)
MOVE SPACES TO <campo-aux1> <campo-aux2> ......<campo-auxn).
ACCEPT DATAH FROM DATE.
*
500-PROCESSAMENTO.
MOVE NOME IN REG-CAD TO NOME IN REG-SAI
MOVE CPF-CAD TO CPF-DET.
PERFORM 510-CALC-GRAU.
PERFORM 520-VERIF-SITUACAO.
80