P. 1
Manual Cobol

Manual Cobol

|Views: 298|Likes:
Publicado porGleidsonMorais

More info:

Published by: GleidsonMorais on Nov 04, 2010
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

05/19/2014

pdf

text

original

Histórico da Linguagem

A linguagem Cobol surgiu em maio de 1959 pelo Departamento de Defesa dos EUA onde se reuniram representantes de vários fabricantes de computadores e usuários em geral. Surgiu com o objectivo de ser uma linguagem comum de programação para computadores digitais tendo em vista aplicações comerciais ou seja, Cobol é uma linguagem de programação de alto nível projectada para aplicações comerciais. A sua sigla significa Common Business Oriented Language (Linguagem de Programação Comum Orientada à negócios) e ela foi idealizada em uma reunião patrocinada pelo Pentágono, onde a partir daí iniciaram os projectos da nova linguagem. Em agosto de 1961 foi divulgada a primeira versão do Cobol, que com o passar dos tempos foi sendo aperfeiçoada, resultando em versões que aumentaram a potencialidade da linguagem. Uma importante contribuição da COBOL foi o seu código de fácil aprendizado, pois utiliza verbos da língua inglesa para identificar os seus comandos. É excelente para manipulação de arquivos. A Cobol é uma linguagem autodescritiva com uma organização rígida e bem definida com o propósito de facilitar a escrita e a leitura tanto para o programador como para o leigo. Uma das principais vantagens que a Cobol trouxe foi uma padronização, ou uniformização entre os fabricantes de computadores. Podemos então dizer que tal linguagem de programação possui grande portabilidade. Um programa Cobol é sempre composto de entradas (frases) devidamente dispostas em divisões, secções e parágrafos. Os programas em Cobol são divididos em quatro partes que são as seguintes: 1-Identification Division 2-Enviroment Division 3-Data Division 4-Procedure Division

a data de escrita. todos os parágrafos são opcionais. processando informações tais como: o nome do programa. DATE-WRITTEN. 1 . devem aparecer nesta ordem. Agosto de 2003. Embora seja obrigatório o uso da divisão. Nome-do-programador INSTALLATION. INSTALLATION. Esta divisão não possui secções e suas entradas são agrupadas em parágrafos de nomes fixos. Comentários sobre a segurança do programa OBS: Apenas o parágrafo PRGRAM-ID é obrigatório.As partes acima citadas auxiliam na simplicidade e eficiência da linguagem e facilitam a leitura dos programas. Estrutura da Divisão IDENTIFICATION DIVISION PROGRAM-ID. AUTOR. Local onde foi feito o programa DATE-WRITTEN. Nome-do-programa AUTOR. DATE-COMPILED. . Exemplo de IDENTIFICATION DIVISION: IDENTIFICATION DIVISION PROGRAM-ID. Identification Division É a primeira divisão do programa. Sua função é identificar o programa de forma mais geral. Contudo. Data em que o programa foi compilado SECURITY. Data em que foi escrito o programa DATE-COMPILED. Micrológica. Exemplo1. se eles estiverem presentes. o autor e comentários em geral. Dezembro de 2003. sendo os outros opcionais. Rodrigo.

I-O-CONTROL. nome do computador usado para a execução SPECIAL-NAMES. Exemplo de CONFIGURATION SECTION ENVIRONMENT DIVISION. SELECT<nome-arq> ASSIGN TO {Disk } {Printer } [ RESERVE <inteiro> {Area }] .Environment Division A Segunda divisão de um programa Cobol é usada para especificar o computador utilizado para a compilação. SOURCE-COMPUTER. FILE-CONTROL. Sde-42 OBJECT-COMPUTER. Estrutura da Divisão: ENVIRONMENT DIVISION. CONFIGURATION SECTION.2 . nomeia e associa arquivos a periféricos. CURRENCY SIGN IS “ E ” DECIMAL . define técnicas de controle. Sde-42 SPECIAL-NAMES. SOURCE-COMPUTER. nome do computador usado para a compilação OBJECT-COMPUTER.POINT IS COMMA PRINTER IS IMPRESSORA. CONFIGURATION SECTION. relaciona nomes internos a equipamentos INPUT-OUTPUT SECTION. A ENVIRONMENT DIVISION é formada por duas secções: · A CONFIGURATION SECTION que trata das características do computador fonte e do computador objecto. FILE – CONTROL. · A INPUT-OUTPUT SECTION trata as informações necessárias ao controle da transmissão e manipulação de dados entre o meio externo e o programa objecto. o computador usado pelo programa objecto e para correlacionar os arquivos lógicos com os equipamentos periféricos.

sejam eles externos (informações gravadas em arquivo) ou internos (existem durante a execução do programa). · WORKING .Preocupa-se em descrever os dados que serão lidos e/ou gravados externamente (dados que existiam antes do programa e dados que continuarão a existir após o programa ser executado).Descreve dados internos .STORAGE SECTION . Estrutura da Divisão DATA DIVISION. isto é.{Areas} [ FILE – STATUS IS <nome de dados 1> ] [ ACCESS MODE IS {SEQUENTIAL} ] {RANDOM} {DYNAMIC} [ ORGANIZATION IS {SEQUENTIAL} ] {INDEXED} {RELATIVE} [ RECORD KEY IS <nome de dado 2> ] [ RELATIVE KEY IS <nome de dado 3> ]. · LINKAGE SECTION . FILE SECTION. aqueles que só existem durante a execução do programa. {entrada de descrição de arquivo} {entrada de descrição de registro} WORKING-STORAGE SECTION. SAME AREA FOR <nome arq 1 > <nome arq 2> .. 3 . trata e descreve os dados que serão manipulados pelo programa durante o processamento. [entrada de descrição de item independente] [entrada de descrição de registro] A DATA DIVISION é formada por três secções: · FILE SECTION . Data Division É a terceira divisão de um programa Cobol..

ABRE-ARQUIVOS . etc..}. Cada secção é opcional e pode ser omitida se não for necessária. terminando sempre por um ponto seguido de espaço. Tais parágrafos podem.Um ou mais parágrafos formam uma secção.}. Uma secção termina imediatamente antes do próximo nome de secção ou pelo termino do programa.. estarem agrupados em SECTIONS também criadas pelo programador. Contudo se a secção for incluída. ainda. UNICA SECTION. Os procedimentos descritos na PROCEDURE DIVISION são escritos em “STATEMENTS” e estão. movimento dos dados. Como vimos acima o “STATEMENT” é a unidade básica da Divisão de Procedimentos. {nome de secção {nome de parágrafo {sentença}. 4 .. Sua função é descrever tais procedimentos necessários para resolução de um problema dado. geralmente. entrada e saída.. Exemplo da Procedure Division: PROCEDURE DIVISION. Uma sentença é composta por um ou mais statements. a ordem é importante. Procedure Division É a divisão do programa que especifica as acções necessárias para o processamento de dados em geral: controle de execução. agrupados em parágrafos cujos nomes são fornecidos pelo programador.OBS.. que deve ser iniciada por um nome de secção seguido da palavra section e por um ponto. Estrutura da Divisão PROCEDURE DIVISION. Um nome de secção aparecendo sempre na margem A(coluna 8).. Existem dois tipos de parágrafos de “Statements”: condicionais e imperativos. As sentenças podem ser agrupadas para formar um parágrafo .

] ENVIRONMENT DIVISION [CONFIGURATION SECTION.. WRITE LINHA FROM IMPRESSAO..] [DATE-COMPILED. MOVE NUMERO – FUNC TO NUMERO... [comentários] . [comentários] . [comentários] . MOVE NOME – FUNC TO NOME.] [SECURITY.. ADD 1 TO CONTA . [comentários] .OPEN INPUT DADOS OUTPUT LISTAG.LIDOS. A sua estrutura completa é: IDENTIFICATION DIVISION PROGRAM-ID.] [INSTALLATION.. nome-do-programa [AUTHOR. Estrutura Básica Organização de um programa COBOL: Um programa COBOL possui quatro divisões que devem ser colocadas na ordem adequada. SOURCE-COMPUTER. ADD 1 TO CONTA – LINHA.. [comentários] .] [REMARKS.] [INSTALLATION.. [comentários] . . [comentários] .. DISPLAY “REGISTROS LIDOS” CONTA .... DISPLAY “LINHAS IMPRESSAS” CONTA – LINHA. ACABOU. GO TO LEITURA. CLOSE DADOS LISTAG.LIDOS. LEITURA READ DADOS AT END GO TO ACABOU.. STOP RUN.] [DATE-WRITTEN..

. [LINKAGE SECTION... PROCEDURE DIVISION.. ].... ]]. ]. [Descrição dos itens de dados] . [SPECIAL-NAMES. [REPORT SECTION.. [Descrição dos itens de dados] . {nome-da-secção SECTION. {nome-de-parágrafo.. DATA DIVISION. {sentença} .. } .. [Descrição das Entradas de Registros] . [FILE SECTION.... ENTRADA... FILE-CONTROL. } . ]. USE SENTENCE. {Descrição de relatórios} {Descrição dos grupos de relatórios} . ]... {sentença} .. [USING identificador-1 [identificador-2] .. [I-O-CONTROL. { Descrição dos arquivos { Descrição dos registros } . } . } ...] {nome-de-parágrafo. [Descrição de registros] .. [COMMUNICATION SECTION.. [WORKING-STORAGE SECTION.] {nome-da-secção SECTION [prioridade] . ]...... END DECLARATIVES.] [DECLARATIVES... [Descrição de registros] . } . } ..OBJECT-COMPUTER.. } .]]. [INPUT-OUTPUT SECTION. {Descrição das Entradas de Comunicação.. .

Símbolos utilizados em Cobol: espaço. 2. Existem três tipos básicos de dados utilizados na Linguagem Cobol que são os seguintes 1.” “. Devem ser utilizadas combinações de “A” a “Z” . Numérico ( sinalizado ou não. “+” “-“ “*” “/” “=” “$” “. “0” a “9” e bifem.” “.Sintaxe da Linguagem A declaração de variáveis em Cobol tem que atender algumas regras de sintaxe tais quais : · · · Elas têm que ter no mínimo um e Máximo de 30 caracteres.” “““ “‘“ “(“ “)” “<” “>” “:” dois pontos Ponto virgula ponto e virgula aspas apostrofo mais menos multiplicação divisão igual Exemplos : PagamentoTotal. com decimais ou inteiros) Alfanumérico . Cliente-Contas. Devem conter pelo menos um caracter alfabético e não podem começar ou terminar com hífen.

2. 4.3. 3. Parênteses Operadores Unários ”+” e “-“ Exponenciação(“**”) Multiplicação e Divisão(“*” e “/”) Adição e Subtracção (“+” e “-“) · · · · · · · · · Sequência “IF -THEN–ELSE” e ” IF – THEN” O comando IF do Cobol é uma implementação da estrutura de selecção da Programação Estruturada. as operações nas expressões aritméticas obedecem a seguinte precedência: 1. Constantes Figurativas Obs : Ao contrario de outras linguagens de programação a linguagem Cobol não permite a utilização de constantes definidas pelo usuário No Cobol. 5. Vejamos um exemplo dessa estrutura a seguir: IF condição THEN Comando-1 ELSE Comando-2 Maior que (“>” ou greater than) Menor que (“<” ou less than) Igualdade (“=” ou Equal to) Diferença (“<>” ou Unequal to) Maior ou Igual (“>=” ou Greater than or Equal to) Menor ou igual (“<=” ou Less than or Equal to) E lógico (AND) Ou lógico (OR) Negação (NOT) As expressões relacionais utilizam os seguintes operadores: Há ainda operadores Lógicos : .

Ao aninharmos dois IF´s.Obs: Neste contexto “Comando” pode ser entendido como conjunto de comandos. devemos cuidar para que o caminho entre a saída do IF interno e a do IF externo permitem ninho de sentenças. más não existe em outras. que é o caso particular de um IF-THEN-ELSE com a parte ELSE nula. no que diz respeito ao seu emprego em Programação Estruturada. apenas para efeito de consistência com a formatação do esquema na programação estruturada e para boa documentação. Neste ultimo caso recomenda-se o uso da cláusula como um comentário. A estrutura IF-THEN. que não . Um grande problema da linguagem Cobol. tem a seguinte forma em Cobol Estruturado: IF condição THEN Comando ELSE NEXT SETENCE A clausula ELSE NEXT SETENCE poderá ser omitida se ela preceder imediatamente o ponto terminal da sentença. é o aninhamento. Isto se deve às características de pontuação do Cobol. não tenha nenhum comando. A clausula THEN é um palavra opcional em algumas versões do Cobol.

. .. parágrafo-n DEPENDING ON i parágrafo-erro Comando GO TO parágrafo-fim. .. .. parágrafo-2... parágrafo-fim.EXIT. .“CASE” A estrutura Case não existe no Cobol. . .. o trecho de programa Case identificador 1: comando-1 2: comando-2 ... ..... identificador... parágrafo-n comandp-n. Sua implementação pode ser feita através do comando GO TO DEPENDING ON........ ... parágrafo-1 comando-1 GO TO parágrafo-fim. parágrafo-2 comando-2 GO TO parágrafo-fim. ....... Assim... n: comando-n é codificado em Cobol por : GO TO parágrafo-1.

A sintaxe deste comando seria a seguinte: PERFORM parágrafo-a [THRU parágrafo-b] UNTIL condição. o comando GO TO DEPENDING ON é ignorado e o parágrafo-erro deve prever as providencias para esta eventualidade. . Ele causa a execução repetida dos comandos entre parágrafo-a e parágrafo-b Até que a condição seja satisfeita. A implementação da estrutura: do while condição comando do é feita então por: PERFROM parágrafo-a THRU parágrafo-b UNTIL NOT condição. uma pequena adaptação ----------------ao comando PERFORM UNTIL tende a resolver o problema. paragrafo-a.O parágrafo erro é uma procedure que resolve o caso em que o “identificador” não assume nenhum valor de 1 até n. se bem que não é de forma ideal. Algol. Todavia. …………. paragrafo-b. O processamento então continua a partir do comando seguinte ao PERFORM. Quando isto ocorre. “DO-WHILE” A estrutura de comando DO-While também não existe em Cobol em sua forma pura como ocorre em Pascal. …………. comando.

... parágrafo-b. a execução.... .... por exemplo ...... 2. um tipo numérico pode assumir valores diferentes que não numéricos. uma boa implementação para repeat comando until condição é a seguinte: PERFORM parágrafo-a THRU parágrafo-b PERFORM parágrafo-a THRU parágrafo-b UNTIL condição. As variáveis definidas na linguagem Cobol não sofrem regras rigorosas tal qual outras linguagens . Evidentemente.. estas duas características devem ser mantidas rigorosamente na implementação desta estrutura em Cobol... As variáveis definidas na linguagem Cobol não sofrem regras rigorosas tal qual outras linguagens .... . parágrafo-ª comando. um tipo numérico pode assumir valores diferentes que não numéricos. dos comandos constituintes da estrutura....... Assim. As características diferenciadas desse esquema de repetição em relação ao DO-WHILE são: 1. .. pelo menos uma vez. a saída do fluxo de controle da estrutura determinada pela verificação da condição (e não pela negação como ocorre no DO-WHILE).REPEAT-UNTIL Esta estrutura de controle também não existe em Cobol na sua forma definida pela Programação Estruturada. por exemplo ... causada pela disposição do teste após estes comandos... Toda variável utilizada num programa Cobol deve ter sua descrição na “Data Division” (Divisão de Dados).

001 050 DATE-WRITEN. 18/12/72. . 02 FILLER PIC X(20). DATA RECORD IS TRAB. 001 120 SOURCE-COMPUTER. ALEX BASTOS. 001 140 INPUT-OUTPUT SECTION 001 150 FILE-CONTROL. RDC-DIV USUARIOS. 001 110 CONFIGURATION SECTION. 001 060 DATE-COMPILED. 001 020 PROGRAM-ID. 02 K PIC X(10). 001 130 OBJECT-COMPUTER. 001 030 AUTHOR. 001 040 INSTALLATION. IBM-370-165. 02 X PIC 99. 001 180 DATA DIVISION. 20/12/72. 001 100 ENVIRONMENT DIVISION. SELECT TRABALHO ASSIGN TO DA-S-SORTWK01. 02 FILLER PIC X(20). 02 Y PIC X(10). 001 070 REMARKS. 002 020 01 ENTRADA. TABSORT.Código Fonte Exemplo: 001 010 IDENTIFICATION DIVISION. 02 Z PIC 99. IBM-370-165. 001 190 FILE SECTION. 001 200 FD ARQUIVO LABEL RECORDS ARE STANDARD 002 010 002 030 002 040 002 050 002 070 002 090 002 100 002 110 DATA RECORD IS ENTRADA. 002 060 SD TRABALHO LABEL RECORDS ARE STANDARD 002 080 01 TRAB. Este programa grava arquivo sequencial em ordem crescente e classifica-o após em ordem decrescente. 001 160 001 170 SELECT ARQUIVO ASSIGN TO DA-S-DISCO.

003 050 GRAVA. 002 130 77 I PIC 99 VALUE ZEROS. 002 140 PROCEDURE DIVISION. ADD 1 TO I. 002 150 002 160 002 180 002 190 002 200 003 010 003 020 003 030 003 040 003 060 003 070 003 080 OPEN OUTPUT ARQUIVO. 003 110 STOP RUN. READ ARQUIVO AT END GO TO FIN. 002 170 GRAVACAO. IF I 100 GO TO GRAVACAO. . GO TO GRAVA. 003 100 CLOSE ARQ. OPEN INPUT ARQUIVO. DISPLAY X' Y. WRITE ENTRADA. SORT TRABALHO DESCENDING Z USING ARQUIVO GIVING ARQUIVO. MOVE I TO X. 003 090 FIN.002 120 WORKING-STORAGE SECTION. MOVE 'TESTE-SORT' TO Y.

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->