Sua Nova Evolução Pela Web!!!
 
InícioInício  PortalPortal  FAQFAQ  BuscarBuscar  Registrar-se  MembrosMembros  GruposGrupos  Conectar-seConectar-se  

Compartilhe | 
 

 Introdução ao COBOL by Tpax

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
jukilo
Ranking
Ranking
avatar

Mensagens : 624
Data de inscrição : 01/03/2008

MensagemAssunto: Introdução ao COBOL by Tpax   Ter Jun 17, 2008 6:30 pm

Eae pessoal, eu estava com um tutorial básico de COBOL escrito por mim
em outubro do ano passado ^^ e postei aqui para a galera, e ele está
facil de entender.

Estrutura de um Programa

Os programas em COBOL são obrigatoriamente constituídos por quatro divisões:

1. A IDENTIFICATION DIVISION marca o início de um programa
COBOL e contém informações gerais sobre o mesmo, tais como a sua
identificação, a identificação do autor, a data em que foi escrito, etc.

2. A ENVIRONMENT DIVISION contém instruções ou comandos
que descrevem o ambiente físico em que o programa é executado. Esta
divisão é usada principalmente para descrever fisicamente os ficheiros
usados pelo programa, através da indicação dos seus nomes(internos e
externos) e do modo como estão organizados.

3. A DATA DIVISION contém instruções que descrevem os
dados usados pelo programa, quer eles existam em ficheiros (o seu
layout) ou sejam internos do programa (variáveis).

4. A PROCEDURE DIVISION contém as instruções COBOL que o
programa irá executar. Cada divisão de um programa COBOL subdivide-se
um unidades mais pequenas denominadas SECTIONs. As secções podem conter
parágrafos (os procedimentos) e estes, por sua vez, contêm instruções.

IF e PERFORM

Um programa tem de ser capaz de tomar decisões sobre os dados e, em
função delas, executar diferentes secções de código. O verbo IF permite
alterar o fluxo de um programa em função dos seus dados.

O verbo PERFORM permite estruturar os programas e identificar os seus
procedimentos. Ao encontrar o verbo PERFORM, o código a executar será o
constante no parágrafo “chamado” e, uma vez executado o parágrafo, o
programa executará a instrução seguinte ao PERFORM (caso o parágrafo
“chamado” não tenha as instruções GO TO ou STOP RUN). Desta forma, para
além de se conseguirem programas mais legíveis, é possível escrever
rotinas genéricas que podem ser executadas em diferentes pontos do
programa.


Código:

000001 PERFORM READ-FICH01.
000002 IF STATUS-FIM
000003 PERFORM FIM-PROGRAMA
000004 ELSE
000005 PERFORM TRATA-REG-FICH01
000006 END-IF.

PERFORM UNTIL, MOVE e ADD

O PERFORM UNTIL permite que se executem repetidamente secções de código
até que se verifique uma condição de paragem (testada antes da
execução).
O verbo MOVE é usado para armazenar valores em variáveis. O verbo ADD é
usado para adicionar valores aos já existentes nas variáveis.


Código:

000001 MOVE 1 TO WS-INDICE.
000002 PERFORM UNTIL WS-INDICE > 13
000003 MOVE WS-INDICE TO NUM-LINHA(WS-INDICE)
000004 MOVE SPACES TO TEXTO-LINHA(WS-INDICE)
000005 ADD 1 TO WS-INDICE
000006 END-PERFORM.

COMPUTE e COMPUTE ROUNDED

O verbo COMPUTE é usado para calcular os resultados de expressões
aritméticas e armazenálos em variáveis. As expressões aritméticas, para
além de parêntesis, podem conter os operadores + (adição), -
(subtracção), * (multiplicação) e / (divisão). A cláusula ROUNDED
permite que o resultado
obtido na avaliação da expressão seja arredondado de acordo com a
definição da variável. Se esta cláusula não for indicada, o resultado
será truncado de acordo com a definição da variável.

Código:

000001 MOVE 0,15 TO CAMOD013-TCTTAXA.
000002 COMPUTE CAMOD013-VTXCORR = WS-VFINANC * (CAMOD013-TCTTAXA / 100).
000003 COMPUTE WS-ARRED-ESC ROUNDED = CAMOD013-VTXCORR.
000004 MOVE WS-ARRED-ESC TO CAMOD013-VTXCORR.

DIVIDE e SUBTRACT

Os verbos DIVIDE e SUBTRACT permitem, respectivamente, efectuar as operações de divisão e subtracção.


Código:

000001 DIVIDE WS-POS-CURSOR BY 80 GIVING WS-LINHA-CURSOR REMAINDER WS-RESTO.
000002 SUBTRACT 4 FROM WS-LINHA-CURSOR.

EVALUATE

A instrução EVALUATE, à semelhança do verbo IF, permite alterar o fluxo
do programa em função dos seus dados. Ao encontrar o EVALUATE, cada uma
das suas condições será avaliada até se encontrar uma que seja
verdadeira. Seguidamente, o código associado a essa condição é
executado e, posteriormente, é executada a instrução seguinte ao
EVALUATE.


Código:

000001 EVALUATE TRUE
000002 WHEN HELP-LINK-ALFA = 'POST'
000003 MOVE ' TABELA DE CODIGOS POSTAIS' TO TITULO
000004 MOVE '07' TO CODTAB
000005 MOVE 4 TO N-DIGITOS-LINK
000006 WHEN HELP-LINK-ALFA = 'BALC'
000007 MOVE ' TABELA DE BALCOES' TO TITULO
000008 MOVE '04' TO CODTAB
000009 MOVE 4 TO N-DIGITOS-LINK
000010 WHEN HELP-LINK-ALFA = 'PAIS'
000011 MOVE ' TABELA DE PAISES' TO TITULO
000012 MOVE 'F2' TO CODTAB
000013 MOVE 3 TO N-DIGITOS-LINK
000014 WHEN HELP-LINK-ALFA = 'ACTE'
000015 MOVE ' TABELA DE ACTIV. ECONOMICAS' TO TITULO
000016 MOVE '98' TO CODTAB
000017 MOVE 5 TO N-DIGITOS-LINK
000018 WHEN HELP-LINK-ALFA = 'GART'
000019 MOVE ' TABELA DE GARANTIAS' TO TITULO
000020 MOVE 'E5' TO CODTAB
000021 MOVE 6 TO N-DIGITOS-LINK
000022 WHEN HELP-LINK-ALFA = 'SECE' OR 'SECR'
000023 MOVE ' TABELA DE SECTORIZACOES' TO TITULO
000024 MOVE 'F1' TO CODTAB
000025 MOVE 8 TO N-DIGITOS-LINK
000026 WHEN HELP-LINK-ALFA = 'VINC'
000027 MOVE ' TABELA DE VINCULOS' TO TITULO
000028 MOVE 'E4' TO CODTAB
000029 MOVE 2 TO N-DIGITOS-LINK
000030 WHEN HELP-LINK-ALFA = 'CDBP'
000031 MOVE 'CODIGOS DO BANCO DE PORTUGAL' TO TITULO
000032 MOVE 'TN' TO CODTAB
000033 MOVE 4 TO N-DIGITOS-LINK
000034 WHEN OTHER
000035 MOVE ALL '*' TO TITULO
000036 MOVE SPACES TO CODTAB
000037 END-EVALUATE.
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://forumevolution.forumeiro.com
 
Introdução ao COBOL by Tpax
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Shiki Ryougi: Introdução, Diálogos de Pre-Bouts e Final
» Seifuku Akiha : Introdução
» Tohno Akiha : Introdução
» Riesbyfe Stridberg : Introdução
» Sion Tatari : Introdução

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
::||Forum Evolution||:: :: Forum Evolution :: Tutoriais-
Ir para: