CAPTULO II - TIPOS DE PROGRAMAS PROGRAMA FONTE Confeccionado atravs de um editor de texto. o programa feito numa determinada linguagem de programao. Ex: Cobol, Fortran, Clipper, etc. PROGRAMA OBJETO o seu programa fonte traduzido para a linguagem de mquina atravs de programas especiais chamados de compiladores ou tradutores. Somente os programas escritos em linguagem de mquina podero ser submetidos e executados nos processadores.
COBOL - COMMOM BUSINESS ORIENTED LANGUAGE COBOL ( Linguagem Comum Orientada para Negcios) uma linguagem simblica de fcil e rpida programao comparada com as linguagens de nvel hierarquicamente inferior, usada largamente em empresas. Dentre as vantagens do COBOL podemos destacar: - Facilidade de codificao, semelhante a prosa inglesa; - Compatibilidade entre sistemas; - Facilidade de treinamento; - Facilidade de correo e depurao; - Boa documentao. Historicamente o COBOL foi iniciado em uma reunio patrocinada pelo Pentgono em maio de 1959, com o objetivo de desenvolver uma linguagem para aplicaes CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
3
CAPTULO IV- DIVISES DO COBOL Existem quatro divises em um programa COBOL, a saber: IDENTIFICATION DIVISION 1 Diviso (parte) do programa COBOL, contendo frases e clusulas de identificao do programa. ENVIRONMENT DIVISION 2 Diviso (parte) do programa COBOL, contendo frases e clusulas de definio dos equipamentos usados no processamento do programa. DATA DIVISION 3 Diviso (parte) do programa COBOL, contendo frases e clusulas de definio e especificao dos arquivos de dados, registros e campos, reas de trabalho com suas constantes e variveis. PROCEDURE DIVISION 4 Diviso (parte) do programa COBOL, contendo pargrafos, sentenas e comandos de execuo. nesta diviso que sero expostos todos os procedimentos necessrios para o cumprimento execuo lgica do programa.
CAPTULO V - CARACTERES UTILIZADOS NA LINGUAGEM Caracteres Alfabticos ( A, B, C, ..........Z ) Espaos (posio em branco) Caracteres numricos ( 0, 1, 2, ......9 ) Sinal Positivo ( + ) Sinal Negativo ou Hfen ( - ) Asterisco ( * ) Igual ( = ) CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
4
CAPTULO VII - CONSTANTES So conjuntos de caracteres fixos no COBOL. As constantes tambm so chamadas de literais e podem ser criadas pelo programador se utilizando de todos os caracteres permitidos pelo COBOL. So trs os tipos de constantes ou literais: 1) LITERIAS NUMRICAS: So compostas de caracteres numricos alm dos sinais positivo, negativo e vrgula decimal. As regras para formao de literais numricas so: a) Ter no mximo 18 caracteres; b) O uso do sinal opcional e deve ser posicionado na extremidade esquerda da constante; CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
5
CAPTULO VIII - REGRAS DE ESPACEJAMENTO E PONTUAO Deve-se deixar um ou mais espaos em branco entre as palavras, duas literais e antes e depois dos seguintes caracteres: + - * = > <. Pontos, Vrgulas e Ponto-e-vrgulas, no precisam ser precedidos de espaos mas devem ser seguidos por no mnimo UM espao.
CAPTULO IX - DESCRIO DA FOLHA DE CODIFICAO COBOL A folha de codificao nada mais do que a determinao das regras de editorao dos programas fontes, ou seja, quais so as regras para distribuio das palavras nas linhas do editor de texto que est sendo utilizado para criao dos programas. Estas regras so as seguintes: a) Iniciar editorao de uma programa atravs de um arquivo que seja NO DOCUMENTO. Isto necessrio pois um arquivo tipo documento possui no seu interior caracteres de editorao que sero percebidos e criticados pelo compilador COBOL como sendo caracteres no permitidos e consequentemente invlidos, causando assim erros de compilao que dificilmente sero percebidos, pois na utilizao do editor esse caracteres no so apresentados, demonstrados. b) Colunas 1 a 6: Utilizadas para determinao da numerao da sequncia das instrues do programa. No obrigatrio mas facilita seu manuseio. O compilador COBOL usado no curso far essa numerao automaticamente. CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
6
CAPTULO X - COMPILADOR COBOL Um programa escrito em COBOL no pode ser executado com suas instrues originais. Essas instrues devem ser traduzidas para linguagem de mquina, linguagem essa que o computador entende e executa as tarefas. Essa traduo feita pelo compilador COBOL, que alm da traduo, faz uma verificao das palavras do programa (sintaxe), checando se elas esto corretas ou no, acusando numa listagem os erros e suas respectivas mensagens que auxiliam na correo.
Como j vimos o COBOL estruturado em Divises, que por sua vez so compostas de Sees, que so compostas por Pargrafos, que so compostos de frases, ou clusulas, que so compostas de palavras. As frases devem ser escritas a partir da coluna 12 da "folha" de COBOL. As Divises, Sees, Pargrafos devem se escritos a partir da coluna 8 da "folha" do COBOL.
CAPTULO XII - COMPOSIO DA IDENTIFICATION DIVISION IDENTIFICATION DIVISION. PROGRAM-ID. nome-do-programa. AUTHOR. nome-do-programador . INSTALATION. nome-da-instalao. DATE-WRITTEN. data-da-confeco- do programa. DATE-COMPILED. data-provvel-da-compilao. SECURITY. comentrios. Comentrios referentes a INDENTIFICATION DIVISION: a) Todos os pargrafos da ID-DIVISION so opcionais, com excesso do PROGRAM-ID; b) O nome-do-programador deve conter no mximo 6 caracteres, pois se for definido mais do que isto, o compilador COBOL ir desprezar o restante; c) Todos os demais dados tem formatos e tamanhos livres, no podendo se esquecer dos pontos-finais ao final de cada sentena; d) A sentena SECURITY tem como finalidade propiciar ao programador a possibilidade de efetuar uma espcie de documentao do programa, ou seja, registrar resumidamente o que o programa faz e qual a funo dele; e) A ordem de apresentao das sentenas aps o PROGRAM-ID no obrigatria
CAPTULO XIII - COMPOSIO DA ENVIRONMENT DIVISION Esta Diviso composta por duas Sees: a Configuration Section e a Input-output Section. O formato o seguinte: ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. nome-do-computador-usado-pgm-fonte. OBJECT-COMPUTER. nome-do-computador-usado-pgm-objeto. SPECIAL-NAMES. declaraes. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT nome-do-arquivo ASSIGN TO dispositivo ACCESS MODE IS sequential / random / dynamic ORGANIZATION IS sequential / indexed / relative/direct CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
8
CAPTULO XIV - MTODOS DE ACESSO E TIPOS DE ORGANIZAO Mtodo de Acesso a forma pela qual o programa atravs de interfaces como o sistema operacional da mquina, ir capturar e depositar dados nos arquivos. a maneira fsica de acesso aos registros do arquivo. Existem trs tipos de mtodo de acesso a arquivos a saber: a) SEQUENCIAL (SEQUENTIAL): Quando os dados so lidos ou escritos de modo sequencial, ou seja, um logo aps o outro, em relao sua posio fsica. No compilador COBOL da Microsoft, existe a disponibilidade do mtodo de acesso LINE SEQUENTIAL, o qual nos d possibilidade de gerar massas de dados atravs de editores de texto, de tal forma que cada linha ser considerado como um registro de dados a ser processado, mesmo que entre uma linha e outra exista espaos em branco, sendo que estes sero desconsiderados para efeito de tamanho do registro. b) ALEATRIO (RANDOM) : Quando os dados so lidos ou escritos de modo aleatrio, ou seja, sem nenhuma ordem constante. c) DINMICO (DYNAMIC): Quando os dados so processados num determinado momento de forma sequencial e em outro determinado momento de maneira aleatria. Tipo de Organizao a forma pela qual os registros esto fisicamente dispostos nos arquivos, ou seja, a posio pela qual um registro se encontra em relao ao outro. Existem 4 tipos de organizao de arquivos: a) SEQUENCIAL (SEQUENTIAL): Os dados esto dispostos no arquivo de acordo com a ordem de criao, ou seja, de chegada. b) INDEXADO (INDEXED): A posio de cada dados determinada por ndice ou chave. Este ndice ou chave normalmente definido atravs de um campo ou composio de alguns campos. c) DIRETO (DIRECT): A posio do registro determinada atravs de esquema de endereamento fsico. d) RELATIVO (RELATIVE): A posio do registro determinada em relao ao primeiro registro do arquivo. Todos os programas que se utilizarem dos mtodos de acesso a arquivos aleatrio ou dinmico, necessitaro que estes arquivos sejam declarados como tendo uma organizao de registros indexeda ou relativa. CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
10
CAPTULO XV - CDIGOS DE RETORNO NOS ACESSOS ARQUIVOS Os principais valores de cdigos de retorno aos acessos aos arquivos indexados (FILE-STATUS) so os seguintes: 00 - Operao completada sem erro 10 - Encontro da marca de final de arquivo 21 - Erro na definio da estrutura (lay-out) do arquivo. Definio do arquivo declarada no programa, incompatvel com o encontrado no acesso aos registros desse 22 - Chave duplicada. O programa tenta gravar um registro com chave (ndice) j existente no arquivo de sada 23 - Registro no encontrado. O programa tenta ler (acessar) um registro atravs de uma chave (ndice) inexistente 24 - Disco Cheio. O dispositivo definido para o arquivo de sada no oferece mais espao disponvel para gravao de registros 30 - Erro permanente. Esse cdigo de retorno apresentado no FILESTATUS quando aps a execuo da instruo de abertura o programa no encontrar o arquivo, ou seja, o arquivo no existe 91 - Arquivo com estrutura destruda.
CAPTULO XVI - COMPOSIO DA DATA DIVISION A importncia da 3 Diviso do programa COBOL a de reservar espao em memria de cada dado, formato (lay-out) dos registros de todos os arquivos que sero manipulados pelo programa, fornecendo o nome, tipo, tamanho, localizao e at o valor inicial de cada um desses itens. nesta Diviso que sero definidos todas as contantes, literais e literais no numricas que sero utilizadas pelo programa. Esta Diviso composta por 5 sees: XVI-1- FILE SECTION - onde so especificados e definidos todos os arquivos que sero utilizados no programa; XVI-2- WORKING-STORAGE SECTION - onde so definidos todos os elementos de uso temporrio do programa; XVI-3- SCREEN SECTION - Onde so definidas as telas que sero tratadas e apresentadas pelo programa; CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
11
CAPTULO XVI-1 - FILE SECTION Como j foi abordado, esta Seo ser utilizada para a definio dos arquivos que o programa ir manipular, ou seja, os arquivos de entrada e de sada. Atravs desta Seo que o programa em momento de execuo, ir definir e reservar espao em memria real para o recebimento e montagem dos registros que sero manipulados pelo programa. O formato da File Section : DATA DIVISION. FILE SECTION. FD nome-do-arquivo LABEL RECORD IS STANDARD/OMITTED RECORD CONTAINS nmero-inteiro RECORDS BLOCK CONTAINS nmero-inteiro RECORDS/CHARACTERS DATA RECORDS IS nome-do-registro RECORDING MODE IS F/V VALUE OF FILE-ID IS nome-externo-do-arquivo. 01 nome-do-registro. 03 nome-do-2campo PIC X(002). 03 nome-do-3campo PIC 9(003). 03 nome-do-4campo PIC A(004). 03 nome-do-5campo PIC X(001). 03 nome-do-6campo PIC 9(007). a) A FD (FILE DESCRIPTION - descrio do arquivo ) deve ser definida para todos os arquivos descritos na SELECT da ENVIRONMENT DIVISION, ou seja, para cada arquivo descrito na SELECT dever existir uma definio de FD. O nome-doarquivo deve ser o mesmo descrito na SELECT. b) O LABEL RECORD serve para especificar se o arquivo ter ou no rtulo. Este rtulo, na verdade, como se fosse um registro com vrias informaes geradas e lidas pelo sistema operacional, ou utilitrios da mquina, ao qual o programa esta ou ser processado. No seu contedo temos, por exemplo, informaes referentes ao nome do arquivo, data de sua criao, maior e menor tamanho do registro, etc. Estas informaes podem variar entre sistemas operacionais. S existem LABELS os arquivos armazenados em meios magnticos. Quando um arquivo possui LABEL, dever ser definido STANDARD, caso contrrio OMITTED. O programador saber o que CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
12
Para termos condio de continuarmos as definies da FILE SECTION, necessitamos quebrar o captulo anterior para explicarmos o que so itens de grupo e itens de dados. a) ITEM DE GRUPO: qualquer registro ou campo que admita subdiviso. Exemplo: um campo data-hoje de nove posies numricas poder ser redefinido atravs da subdiviso dele em trs outros campos (sub-campos), tais como: dia-hoje, ms-hoje e ano-hoje. b) ITEM DE DADO: o item final indivisvel de um campo. Continuando com o exemplo acima os sub-campos dia-hoje, ms-hoje e ano-hoje so itens de dados do item de grupo data-hoje.
CAPTULO XVI-1B - NVEIS DE DADOS Para definio dos arquivos, registros, campos, reas de trabalho no COBOL h necessidade de se utilizar Nveis de dados. Estes nveis auxilam sobremaneira na CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
13
CAPTULO XVI-2 - WORKING-STORAGE SECTION Esta a segunda seo da Data Division onde nela sero descritos e definidos todos os dados de uso temporrio no programa e que consequentemente se perdero logo aps o programa termine seu processamento. Estes dados definidos nesta Seo sero armazenados em memria RAM durante o processamento do programa. A WorkingStorage Section s pode ser declarada aps todas as descries da File Section. O formato da Seo normalmente o seguinte: WORKING-STORAGE SECTION. 77 CONT-LIN PIC 9(002).
14
CABEC-1. 03 FILLER PIC X(035) VALUE SPACES. 03 FILLER PIC X(009) VALUE
CAPTULO XVI-2A - CLASULA PICTURE A clusula PICTURE (PIC) permite especificar o tipo e o tamanho e outras informaes ou definies de edio do campo descrito. Esta clusula s pode ser utilizada na definio de um item de dado. Nunca num item de grupo. Veja o exemplo do CABEC-1. Os caracteres mais usados na descrio da Picture so: 9 numrico A alfabtico Z suprime zeros no significativos X alfanumrico V vrgula B branco S sinal
A insero de um dado, atravs da parte lgica do programa, incompatvel com o tipo do campo definido pela clusula PIC, causar erro de execuo no programa. Exemplo: tentar gravar letras num campo que foi definido como sendo 9. Os exemplos abaixo so de grande valia na demonstao de como a definio da PIC pode influir no resultado final: PICTURE 9(06) X(06) A(02) 9(06)V99 9(06),99 999.999,99 Z(06),ZZ ZZZ.ZZZ,ZZ Z9,99 ZZ,99 CONTEDO 1824 JOO SP 843264 843264 843264 843264 843264 32 32 EDIO 001824 JOObb SP 00843264 008432,64 008.432,64 bb8432,64 bb8.432,64 0,32 b,32
CAPTULO XVI-2B - OUTRAS CLUSULAS DA DATA DIVISION CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
15
d) REDEFINES: clusula que designa a mesma rea de memria para uma varivel ou nome, atribuindo-lhe caractersticas diferentes. Exemplo: 01 DATA-HOJE 01 DATA-HOJE-RED 03 DD-HOJE 03 MM-HOJE 03 AA-HOJE PIC 9(06). DATA-HOJE.
Atravs deste artifcio, o programador poder utilizar a informao da data por completo (DATA-HOJE), ou se preferir ou necessitar utilizar as informaes particularizadas da data atravs dos itens de dados dd, mm, aa. A somatria dos campos redefinidos deve ser a mesma dos campos redefinidores. Quando usamos o OCCURS ou o REDEFINES num campo, esse no poder possuir a clusula VALUE. O OCCURS no pode ser utilizado em conjunto com o REDEFINES.
16
VALUE "TELA TESTE". VALUE "DADO-1". VALUE "DADO-2". PIC 9(06) AUTO. PIC X(06) SECURE.
CAPTULO XVI-3A - CLUSULAS USADAS NA SCREEN SECTION Vrias clusulas so possveis de serem utilizadas na Screen Section para particularizar a tela no que tange a sua apresentao e tratamento na entrada de dados. Estas clasulas so as seguintes: a) BLANK SCREEN: Tem por finalidade limpar a tela antes de sua edio (apresentao). O cursor posiciona-se no incio da tela. Esta clusula deve ser a primeira do lay-out da tela. b) LINE: Permite definir qual a linha usada na tela, que ser indicada pelo inteiro-1, ou seja, qual a linha que ser utilizada para a apresentao (edio) do dado que est se definindo. Este inteiro-1 s poder ser de 1 a 24, pois a tela s possui 24 linhas teis para edio. Existe uma variao desta clasula, utilizando conjugado ao LINE o termo PLUS ou + "inteiro", a qual indica que a linha a ser utilizada ser a linha descrita em LINE mais o valor descrito no inteiro". c) COLUMN: Permite definir qual a coluna usada na tela, que ser indicada pelo inteiro-2, ou seja, qual a coluna que ser utilizada para a apresentao (edio) do dado que est se definindo. Este inteiro-2 s poder ser de 1 a 80, pois a tela s possui 80 colunas teis para edio. Esta informao ser sempre conjugada com a clusula LINE de formar a possibilitar uma total determinao do posicionamento do dado a ser editado. Existe uma variao desta clasula, utilizando conjugado ao COLUMN o termo PLUS ou + "inteiro", a qual indica que a coluna a ser utilizada ser a coluna descrita em COLUMN mais o valor descrito no inteiro". d) BLANK LINE: Limpa a linha, a partir do ponto especificado no COLUMN, at o final da linha. CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
17
01 CABEC2. 03 FILLER PIC X(005) VALUE ' EM '. 03 DATACAB2. 05 DD PIC 9(002). 05 FILLER PIC X(001) VALUE '/'. 05 MM PIC 9(002). 05 FILLER PIC X(001) VALUE '/'. 05 AA PIC 9(002). 03 FILLER PIC X(006) VALUE SPACES. 03 FILLER PIC X(009) VALUE 'RELATORIO'. 03 FILLER PIC X(006) VALUE ' DE '. 03 FILLER PIC X(015) VALUE 'INADIMPLENTES '. 03 FILLER PIC X(013) VALUE 'E ARRECADADO'. 03 FILLER PIC X(013). 01 LINDET. 03 FILLER PIC X(010) VALUE SPACES. 03 NOME-REL PIC X(030). 03 FILLER PIC X(010) VALUE SPACES. 03 MES-PAGO-REL PIC 9(002). 03 FILLER PIC X(010) VALUE SPACES. 03 VALOR-REL PIC ZZZZZ9,99. SCREEN SECTION. 01 TELA-01. 03 LINE 1 COLUMN 10 03 LINE 3 COLUMN 15 03 LINE 5 COLUMN 15 03 LINE 3 COLUMN 22 03 LINE 5 COLUMN 22
VALUE "TELA TESTE". VALUE "DADO-1". VALUE "DADO-2". PIC 9(06) AUTO. PIC X(06) SECURE.
CAPTULO XVII - COMPOSIO DA PROCEDURE DIVISION Nesta Diviso sero descritos todos os procedimentos necessrios execuo do programa. Antes de sua confeco ideal que j se tenha desenvolvido o fluxograma ou CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
20
CAPTULO XVII-1- COMANDOS DE ENTRADA E SADA COMANDO OPEN: Permite a abertura de um arquivo para leitura e/ou gravao. Atravs deste comando o Sistema Operacional fica cientificado que o programa estar manipulando o arquivo para uma determinada funo.
Formato: OPEN
NOME-DO-ARQUIVO.
Onde:
INPUT abre o arquivo como entrada (leitura) OUTPUT abre o arquivo como sada (gravao ou impresso) I-O abre o arquivo como entrada e sada (leitura e gravao)
Obs: O nome-do-arquivo deve ser exatamente o mesmo definido na clusula SELECT da Environment Division. Para os comandos INPUT e I-O o arquivo deve existir no disco, pois caso o contrrio, o programa emitir erro. Exemplos: OPEN OPEN OPEN INPUT OUTPUT INPUT CAD-SOCIO. RELATO. CAD-SOCIO
21
COMANDO CLOSE: Permite fechar um arquivo que foi aberto em determinado momento. Atravs deste comando tambm o Sistema Opercional cientificado que o arquivo no mais est sendo manipulado pelo programa, disponibilizando-o para outro processamento ou acesso.
Obs: O nome-do-arquivo deve ser exatamente o mesmo definido na clusula SELECT da Environment Division. Exemplos: CLOSE CLOSE CLOSE CAD-SOCIO. RELATO. CAD-SOCIO RELATO.
COMANDO READ: Permite a leitura de um registro do arquivo aberto como INPUT ou I-O, e o traz para o local da memria reservado e definido pela FD deste arquivo na Data Division. Formato: READ NOME-DO-ARQUIVO [INTO NOME-DOREGISTRO] AT END (COMANDO) INVALID KEY (COMANDO). Onde: INTO NOME-DO-REGISTRO opcional, pois default aps uma leitura o registro ser colocado no local reservado a ele definido na FD do arquivo. O INTO til caso o arquivo que se est lendo (acessando) possue vrios tipos de registros diferentes, ou seja, lay-outs diferentes. Neste caso importante utilizar o INTO para denominar qual ser a rea que, aps o ato de leitura, o registro dever ser colocado. AT END (COMANDO) verifica se o registro lido a marca de fim de arquivo. Se for, ser executado a(s) instruo(es) descrita(s) e apresentada(s) dentro da estrutura de COMANDO. Caso nesta leitura no se tenha encontrado a marca de fim de arquivo, ou seja, achou registro e este foi transportado para a sua rea definida na FD, o programa ignora a(s) instruo(es) descrita(s) e apresentada(s) dentro da estrutura de COMANDO e executar o primeiro comando aps o ponto final do comando READ. Esta opo de teste de encontro de final de arquivo (AT END) s deve ser utilizada em arquivos que esto sendo manipulados sequencialmente, ou seja, em arquivos que foram declarados na SELECT com ACCESS MODE IS SEQUENTIAL.
22
COMANDO WRITE: Permite efetuar a gravao de um registro num arquivo, que deve ser aberto com OUTPUT ou I-O. Atravs deste comando, o contedo da rea reservada a este registro na FD do arquivo, ser transferido fisicamente para o arquivo de sada (disco, fita, relatrio, etc). Formato: WRITE NOME-DO-REGISTRO FROM NOME-DADO AFTER/BEFORE PAGE/ N LINES.
Onde: NOME-DO-REGISTRO o mesmo descrito e definido com o nvel 01 da FD do arquivo. FROM faz com que o nome-dado seja movido para o nomedo-registro, antes da gravao. NOME-DADO pode ser qualquer campo ou rea definida na Working-Storage Section da Data Division. AFTER usado exclusivamente quando o arquivo de sada um relatrio. Far com que seja executado primeiro o comando apresentado aps ele (after), para s depois o comando antes dele. BEFORE usado exclusivamente quando o arquivo de sada um relatrio. Far com que seja executado primeiro o comando apresentado antes dele (before), para s depois o comando aps ele.
23
REG-RELATO FROM CABEC-3. REG-RELATO FROM CABEC-1 AFTER PAGE. REG-RELATO FROM CABEC-2 BEFORE 2 LINES.
Obs: Para gravao de registros de forma aleatria necessrio, antes do WRITE, uma movimentao do campo-chave a ser gravado para a chave do arquivo (RECORD KEY).
COMANDO DELETE: Permite deletar registros que foram recentemente lidos. Formato: DELETE NOME-DO-ARQUIVO.
Obs: O nome-do-arquivo deve ser exatamente o mesmo definido na clusula SELECT da Environment Division. Apesar da sintaxe utilizar o nome-do-arquivo, na verdade ser deletado o registro que se encontra dentro da FD deste arquivo. Para que este registro esteja dentro da FD h necessidade do registro ter sido lido. Exemplos: DELETE CAD-SOCIO.
COMANDO ACCEPT: Permite o recebimento de dados de outra origem que no seja dos arquivos de entrada do programa. Estes dados podero dar entrada ao programa atravs de algo digitado na tela ou por "cartes-parmetros" no ambiente mainframe. usado somente para dar enttrada a um pequeno volume de dados, ou para recebimento de telas ou itens de telas. Formato: ACCEPT [NOME-DADO-1] FROM DATE/DAY/TIME/ESCAPE KEY. ou ACCEPT (LIN,COL) [NOME-DADO-1]. Onde: NOME-DADO-1 uma rea que foi definida na WorkingStorage Section que receber o contedo do DATE, DAY, TIME do DOS ou ESCAPE KEY. ESCAPE KEY utilizado para que o programa tenha como testar qual foi a tecla pressionada pelo operador/ executor do programa. Desta forma ser colocado no campo da Working [nome-dado-1] o valor da ltima tecla acionada. Os valores possveis so: 00 - Tecla "Enter" 01 - Tecla "ESC" CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
24
COMANDO DISPLAY: Permite escrever o contedo de uma ou mais variveis em determinado dispositivo de sada. usado para pequeno volume de dados de sada. Usado normalmente para apresentao de dados ou tela no vdeo, ou tambm para imprimir mensagem de erros em relatrios. Formato: DISPLAY PRINTER/CONSOLE. CONSTANTE/NOME-DADO-1 UPON
ou DISPLAY (LIN,COL) CONSTANTE/NOME-DADO-1. Onde: CONSTANTE poder ser um contedo qualquer, uma mensagem, um aviso ao operador, um erro, etc. NOME-DADO-1 uma rea definida em Working-Storage Section que estar sendo apresentada em vdeo. UPON PRINTER/CONSOLE a determinao de onde ser apresentado o nome-dado-1 ou constante. Se for declarado Printer o valor ser descarregado em relatrio. Caso seja declarado Console o valor ser descarregado em vdeo. o Default console. (LIN, COL) ser colocado na linha (LIN) e coluna (COL) o valor da constante o nome-dado-1. Exemplos: DISPLAY "BENVINDO AO SISTEMA". DISPLAY "ERRO DE ACESSO AO ARQUIVO" UPON PRINTER. DISPLAY (10,7) DADO-1.
25
CAPTULO XVII-2-COMANDOS ARITMTICOS COMANDO ADD: Utilizado para efetuar adio do contedo de uma ou mais campos ou constantes, em um ou mais campos.
Onde:
CONSTANTE pode ser um algarismo qualquer. NOME-DADO-1 pode ser um campo ou rea de trabalho qualquer.
TO indicar que a CONTANTE/NOME-DADO-1 ser acrescido ao NOMEDADO-2 colocando o resultado no NOME-DADO-2. GIVING opcional no comando ADD, ou seja, voc poder ou no, querer gerar o resultado da adio numa outra rea independente das que esto sendo utilizadas para efetuar a operao. O contedo do NOME-DADO-3 no compor a adio. Exemplos: ADD 1 TO A. ADD A B TO C. A=A+1 C=C+B+A C=B+A A=A+10 e B=B+10 TOTAL=TOTAL+VALOR
COMANDO SUBTRACT: Efetua a subtrao do contedo de um ou mais campos ou constantes, em um ou mais campos. CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
26
Onde:
CONSTANTE pode ser um algarismo qualquer. NOME-DADO-1 pode ser um campo ou rea de trabalho qualquer.
FROM indicar que a CONTANTE/NOME-DADO-1 ser decrescido ao NOME-DADO-2 colocando o resultado no NOME-DADO-2. GIVING opcional no comando SUBTRACT, ou seja, voc poder ou no, querer gerar o resultado da subtrao numa outra rea independente das que esto sendo utilizadas para efetuar a operao. O contedo do NOME-DADO-3 no compor a subtrao. Exemplos: SUBTRACT A FROM B. SUBTRACT A SUBTRACT A B B FROM C. FROM C GIVING D. B=B-A C=C-(B+A) D=C-(A+B)
SUBTRACT 10 FROM
DADO-2.
Obs: Na subtrao os dados tratados devem ser numricos (PIC 9). Se o resultado da subtrao for negativo e o campo receptor no tiver sinal (S na sua PIC), o resultado quando apresentado ser positivo.
COMANDO DIVIDE: Efetua a diviso do contedo de um campo ou constante, por outro campo. Formato: DIVIDE CONSTANTE/NOME-DADO INTO/BY NOMEDADO/CONSTANTE GIVING NOME-DADO.
Onde:
CONSTANTE pode ser um algarismo qualquer. NOME-DADO pode ser um campo ou rea de trabalho qualquer.
B=B/A C=A/B
COMANDO MULTIPLY: Efetua a multiplicao do contedo de um campo ou constante, por outro campo.
Onde:
CONSTANTE pode ser um algarismo qualquer. NOME-DADO pode ser um campo ou rea de trabalho qualquer. BY significa "por".
Exemplos:
COMANDO COMPUTE: Efetua o clculo da expresso aritmtica colocando o resultado num campo. Formato: ARITMTICA]. COMPUTE NOME-DADO=[EXPRESSAO
Onde:
EXPRESSO ARITMTICA a descrio de uma sentena aritmrica normal. Nesta expresso podem ser usados os seguintets sinais: + para adio; - para subtrao; * para multiplicao; / para diviso; ** para exponenciao; ( ) hierarquia do cculo. Obs: A hierarquia de execuo da expresso segue a mesma da matemtica, ou seja, primeiro a exponenciao, segundo a multiplicao e diviso e em terceiro adio e subtrao, desde que os parnteses no interfiram. No COMPUTE os dados tratados devem ser numricos (PIC 9). CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
28
CAPTULO XVII-3- Comandos que alteram a sequncia de execuo Os comandos so executados na sequncia natural de acordo com a ordem de apresentao. Como resultado de uma condio o programador pode alterar essa sequncia atravs destes comandos: COMANDO GO TO: Desvia a execuo do programa para o incio do pargrafo indicado. A execuo do programa ser desviada para o pargrafo indicado, executando suas instrues da (do pargrafo) para frente, sem mais retornar para a sentena da instruo GO TO. Este comando permite um desvio incondicional na execuo normal do programa. Formato: GO TO NOME-PARGRAFO.
Exemplos:
GO TO GO TO
CABEC. FINALIZAR.
COMANDO PERFORM: Desvia a execuo do programa para o incio do pargrafo indicado. A execuo do programa ser desviada para o pargrafo indicado, executando suas instrues da (do pargrafo) para frente at o ponto final delimitador do trmino do pargrafo indicado. Aps isto a execuo do programa retorna para a sentena da instruo PERFORM, imediatamente seguinte. Em resumo o comando PERFORM permite executar uma rotina, determinada por uma pargrafo, fora da sequncia normal do programa. Aps o trmino dessa rotina a execuo passar para o comando seguinte ao PERFORM. Formatos: PERFORM PERFORM TIMES. PERFORM NOME-PARGRAFO [THRU NOME-PARGRAFO-2] UNTIL CONDIO.
29
NOME-PARGRAFO NOME-PARGRAFO
[THRU [THRU
Exemplos: PERFORM CABEC. (ir desviar a execuo do programa para a rotina CABEC, execut-la e retornar para instruo logo aps o ponto final deste PERFORM) PERFORM CABEC THRU FIM-CABEC. (ir desviar a execuo do programa para a rotina CABEC, execut-la at o pargrafo FIM-CABEC e retornar para instruo logo aps o ponto final deste PERFORM) PERFORM CABEC THRU FIM-DET. (ir desviar a execuo do programa para a rotina CABEC, executando todas as rotinas at encontrar o pargrafo FIM-DET, retornando para instruo logo aps o ponto final deste PERFORM) PERFORM PROCES UNTIL CHF="SIM". (ir desviar a execuo do programa para a rotina PROCES, executando-a simultaneamente at que a condio seja satisfeita, ou seja, CHF=""SIM". Enquanto a CHF no contenha este valor (SIM) o programa ir executar simultaneamente a rotina PROCES) PERFORM CALCULO 10 TIMES. (ir desviar a execuo do programa para a rotina CALCULO, executando-a 10 vezes repetidamente)
COMANDO STOP: encerra definitivamente ou temporariamente a execuo do programa. Formato: STOP RUN/LITERAL.
30
CAPTULO XVII-4- COMANDOS DE MOVIMENTAO DE DADOS Na verdade este captulo resume-se em apenas um comando. Este recurso de movimentao de dados tem como objetivos: - transferir o valor de um campo ou uma constante para um ou mais campos; - tranferir o valor de um registro montado em memria, por exemplo de entrada, para um outro registro que se encontra em memria, por exemplo de sada. Formato: MOVE NOME-DADO-1 LITERAL CONSTANTE TO NOME-DADO2 NOME-DADO-3.
Exemplos:
0 REG-ENT
TO
CTLIN.
TO REG-SAI.
CAMPO-1-ENT TO CAMPO-1-SAI.
Obs: Na movimentao de dados numricos a transferncia da origem para o destino ocorre o ajustamento da direita para a esquerda, portanto deve-se sempre observar o tamanho destes dados para se evitar perda. Os dados alfanumricos obedece a mesma observao, cabendo salientar que,neste caso, o ajustamento da transferncia se efetua da esquerda para a direita, ou seja, o inverso.
ROT-1.
THAN 45
THEN
PERFORM
Onde: IS significa "". NOT significa "NO". O formato do comando lhe permite a conjugao do IS e do NOT para montagem do "NO ". Estas variaes so opcionais. POSITIVE "positivo" e NEGATIVE "negativo". Exemplos: CORREAO. IF TOT-CAL IS ZERO GO TO FINALIZAR. c. Teste de Classe Formato: IF NOME-DADO-1 [IS](NOT) NUMERIC ALFANUMERIC COMANDO(s). IF IF TOT-CAL IS POSITIVE GO TO ROT-FIM. TOT-CAL IS NOT NEGATIVE PERFORM
Onde: IS significa "". NOT significa "NO". O formato do comando lhe permite a conjugao do IS e do NOT para montagem do "NO ". Estas variaes so opcionais. NUMERIC significa "numrico" e ALFANUMERIC "alfanumrico". Exemplos: CALCULO. IF CAMPO-2. At o momento vimos variaes do comando IF que apenas demonstravam claramente o que o programa deveria executar caso sasse pela alternativa (S), deixando CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
33
IF
CAMPO-1
IS
NUMERIC
PERFORM
CAMPO-1
ALFANUMERIC
MOVE CAMPO-1 TO
Onde: EXPRESSO CONDCIONAL / LGICA poder se qualquer uma das demonstradas peelas letras "a", "b" e "c" deste captulo. ELSE significa "SENO". NEXT SENTENCE um comando utilizado exclusivamente dentrto de um IF que serve para desviar a execuo do programa para a "prxima sentena" do programa aps o ponto-final do IF. Exemplos: IF CTLIN EQUAL 10 PERFORM CABEC ELSE PERFORM DETALHE. Neste exemplo de comando IF com ELSE, se o CTLIN for = a 10 o programa executar EXCLUSIVAMENTE a rotina CABEC e em seguida executar o comando que se apresentar aps o ponto-final do comando IF. Analogamente se o CTLIN no for = a 10, o programa executar EXCLUSIVAMENTE a rotina DETALHE e em seguida o comando aps o ponto-final do IF. Ou seja, neste estrutura de IF, o programa executar ou o CABEC ou o DETALHE, nunca os dois juntos. Para que esta estrutura de IF seja considerada logicamente correta, deveramos t-la codificado da seguinte forma:
34
CAPTULO XVIII - UTILIZANDO O COMPILADOR COBOL Para que seja efetuada a transformao do seu programa fonte em programa objeto ou executvel, ou seja, em linguagem de mquina, haver necessidade de submeter o seu fonte ao software COBOL. Este software proceder numa primeira etapa a compilao do seu programa. Este processo consiste na verificao de todas as sentenas do seu programa, verificando se h algum caracter no reconhecido, bem como realizar a verificao da sintaxe (formato) de cada uma das sentenas, portanto de cada uma das instrues. Caso ele verifique algum erro, ser apontado a voc tanto na tela como tambm em listagem, caso voc deseje. Se aps a compilao no haja nenhum erro de formato, ele efetuar a traduo do seu cdigo fonte em cdigo de mquina e que consequentemente lhe propiciar a oportunidade de definitivamente execut-lo. Para se efetuar a compilao voc dever agir da seguinte forma: 1) criar o programa fonte; 2) conhecer onde est instalado o pacote software COBOL; 3) digitar: COBOL NOME-DO-PROGRAMA; (enter) Este NOME-DO-PROGRAMA dever ter extenso .COB obrigatoriamente. O comando COBOL dever ser emitido do subdiretrio que contenha o software COBOL, ou do seu subdiretrio de trabalho caso o PATH do seu ambiente esteja apontado para o subdiretrio onde se encontra o COBOL. 4) Efetuado o passo anterior, aparecer na tela: SOURCE FILENAME [.COB]: 5) Digitar o nome do seu programa fonte, sem a extenso; (enter) 6) Efetuado o passo anterior, aparecer na tela: OBJECT FILENAME [.OBJ]: 7) Digitar o nome que o seu programa em linguagem de mquina ter, que no necessariamente precisar ser o mesmo que o nome do programa fonte; (enter) 8) Efetuado o passo anterior, aparecer na tela: SOURCE LISTING [.LST]: 9) Digitar um nome de arquivo para a listagem da compilao. Caso no deseje a listagem, no atribua nome nenhum e pressione "enter"; 10) Aps toda esta sequncia o software COBOL ir analisar todas as linhas de seu programa-fonte. Podero ser apontados erros do tipo "W" que significa erros WARNING, ou seja, tome cuidado pois esses erros podero lhe causar problemas depois, mas o COBOL no cancelar a traduo do COBOL para a linguagem de mquina. O outro tipo de erro que poder aparecer ser do tipo "E" que significa erro fatal e portanto no efetuar a traduo. Voc dever efetuar a correo no seu programa fonte. Para efeutar a execuo do seu programa, voc dever: CURSO DE ADMINISTRAO DE SISTEMAS DE INFORMAO
35
36
37
39
INDCE REMISSIVO
A
ACCESS MODE 8, 9, 19, 22 reas de trabalho 4, 13 arquivo 6, 8, 9, 10, 11, 12, 13, 14, 21, 22, 23, 24, 35 AUTHOR 8, 18
I
INDENTIFICATION DIVISION 8 3, 7, 35 3, 4 5, 6, 11 7, 21 7 8, 19
L
linguagem LINGUAGEM literais
C
clusulas 4, 7, 9, 16, 17, 18, 25, 26 COBOL 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 16, 21, 35, 36 cdigo de mquina 3, 35 cdigos simblicos 3 Coluna 7 compilador 6, 7, 8, 9, 10 computador 7, 8, 9 constantes 4, 5, 26 CONSTANTES 5, 6
M O
D E
palavras 4, 5, 6, 7 pargrafos 4, 8, 21 PROGRAM-ID 8, 18 programa 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36 PROGRAMA 3, 18, 35, 36
S
SECURITY sentenas sintaxe 8, 18 4, 7, 8, 35 3, 4, 7, 21, 24, 35 4, 7, 25
variveis
40