Apostila Completa - Cobol

  • View
    300

  • Download
    89

Embed Size (px)

Transcript

  • Cobol

    Autor: DST Latin America Software

  • Cobol Bsico DTS Latin America Software

    Pgina: 2(57)

    AAppoossttiillaa ddee CCoobbooll BBssiiccoo

    http://www.mundocobol.com

  • Cobol Bsico DTS Latin America Software

    3(57)

    ndice Introduo 3 Explanao de um fonte Cobol 4 rea de numerao sequencial 4 rea de indicao 4 rea A e B 5 Identification Division 5 Data Division 6 Procedure Division 6 Comandos condicionais 7 Clculos aritmticos 11 Laos 16 Variveis 20 Alfabtica 23 Numrica 23 Alfanumrica 24 Ocorrncias 25 Exibindo e aceitando informaes do usurio 26 Comunicao entre programas 31 Tratamento e armazenamento de informaes 32 Sequential 32 Line Sequential 34 Relative 34 Indexed 35 Configuration Section 36 Input-Output Section 36 RANDOM (Aleatrio) 38 SEQUENTIAL (Seqencial) 38 DYNAMIC (Dinmico) 38 Manipulando as informaes 39 Gravando novas informaes 41 Regravando novas informaes 41 Apagando informaes 42 Consultando informaes 42 Fechando os arquivos 46 Ordenando as informaes 46 Impresso 48 Ambientes multiusurio (Redes) 51 Tpicos adicionais 53 Tratamentos de dados alfanumricos 53 Recuperando arquivos corrompidos 56

  • Cobol Bsico DTS Latin America Software

    4(57)

    Introduo Esta apostila tem como objetivo treinar pessoas com algum conhecimento em lgica de programao. Visualizando aspectos bsicos da linguagem, o suficiente para que a pessoa consiga desenvolver programas bsicos utilizando a linguagem COBOL (COmmon Bussines Oriented Language). Esta uma linguagem voltada exclusivamente para ambientes comerciais, ela possui uma arquitetura de programao muito fcil e clara, tornando os programas auto-documentveis. Recentemente, a Merant Micro Focus com o produto Net Express empregou uma srie de novas tecnologias linguagem. Dentre elas: Programao orientada a objetos, suporte ao desenvolvimento de aplicaes grficas GUI (Graphical User Interface ou simplesmente aplicaes Windows), suporte ao desenvolvimento de aplicaes CGI (Common Gateway Interface ou simplesmente aplicaes voltadas para os ambientes de Internet/Intranet/Extranet), acesso via ODBC (Open Data Base Connectivity) que permite a um programa escrito em COBOL acessar praticamente qualquer tipo de base de dados ou banco de dados existente atualmente no mercado. Outra caracterstica muito importante a portabilidade do cdigo gerado pelo ambiente Net Express chamado de .INT, este arquivo interpretado em tempo de execuo pelo Run-time instalado no ambiente, desta forma podemos escrever nossas aplicaes no ambiente Windows e utilizar todos os poderosos recursos de depuraes fornecidas pela ferramenta e executar no ambiente Linux, por exemplo. Existem muitas plataformas suportadas pela Merant Micro Focus. Esta apostila no aborda nenhuma destas novas tecnologias mencionadas, apenas clusulas de um fonte COBOL. Para executar os exerccios e compilar os programas exemplos dados nesta apostila necessrio que voc tenha um compilador Cobol na sua mquina. O ideal seria que voc tivesse o Netexpress(COBOL Microfocus), pois com ele voc poderia testar a sua aplicao. Comprando qualquer produto pelo site Mundocobol.com na Cobol Store voc ganha um CD demo do NetExpress e pode trabalhar com ele por 30 dias, gerando executveis, etc. Caso no possua o compilador Cobol utilize o Notepad para editar os programas exemplo e pelo menos visualizar a estrutura de um programa Cobol com toda a identao das sees. Para qualquer informao adicional sobre Cobol, as evolues e compiladores acesse www.mundocobol.com. O Objetivo deste apostila com que VOC conhea e aprenda mais sobre o COBOL esta poderosa linguagem de programao.

  • Cobol Bsico DTS Latin America Software

    5(57)

    Explanao de um fonte Cobol Todo programa escrito na linguagem Cobol possua algumas regras rgidas a serem seguidas como uma redao que possui incio, meio e fim, mas isto j opcional, com o advento de novas tecnologias possvel escrever um cdigo fonte em free format, ou seja, no necessrio seguir todas as regras da linguagem. O cdigo fonte possui quatro divises que devem ser utilizadas nesta ordem: IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION e PROCEDURE DIVISION. Estas divises devem ser escritas seguindo algumas regras de posicionamento: | ||| || | ....|....1....|....2....|....3....|....4....|....5....|....6....|....7....|... Colunas de 1 a 6: rea de numerao sequencial Coluna 7: rea de indicao Colunas de 8 a 11: rea A Colunas de 12 a 72: rea B Pode-se digitar at a coluna 80 mas tudo que for digitado entre 73 e 80, ser considerado como um comentrio. rea de numerao sequencial Normalmente consiste em seis dgitos em ordem crescente que normalmente so utilizados para marcas de identificao do fonte. Segundo as regras no ANS85 pode-se tambm colocar comentrios nesta rea. Alm disso podemos colocar um asterisco na coluna 1 (um) ou qualquer outro caractere onde sua representao ASCII seja menor do que 20 (ESPAO), fazendo com que a linha inteira seja considerada como um comentrio. rea de indicao Um hfen (-) nesta posio indica que existe uma continuao de uma cadeia de caracteres que foi iniciada na linha anterior, ou seja, quando desejamos atribuir um valor inicial a uma varivel em sua declarao ou quando desejamos exibir um texto muito extenso. Opcionalmente podemos colocar o texto inteiro na linha de baixo para no termos que quebra-lo. Um asterisco (*) indica que toda a linha deve ser tratada como um comentrio. Uma barra (/) alm de tratar a linha como comentrio far com que ao gerar um arquivo de listagem (.LST) ser adicionado um salto de pgina para impresses. Um dlar ($) indicar ao compilador que a linha ter diretivas de compilao ou compilao condicional. Estas diretivas so utilizadas para modificar o comportamento e compatibilidade dos programas no ambiente Merant Micro Focus.

  • Cobol Bsico DTS Latin America Software

    6(57)

    rea A e B Originalmente havia uma separao do que poderia ser escrito na rea A e na rea B, com o advento do ANS85 isto no existe mais. Esta distino implicava que as divises, sees, declarao de variveis e pargrafos do programa eram os nicos que podiam utilizar a rea A e outros comandos a rea B. Vamos analisar o cdigo fonte a seguir: ....|....1....|....2....|....3....|....4....|....5....|....6....|....7.. identification division. program-id. CalcArea. author. DTS Latin America Software. * data division. working-storage section. 77 largura pic 9(003) value zeros. 77 altura pic 9(003) value zeros. 77 area-result pic 9(006) value zeros. * procedure division. inicio. display erase display "Calculo de area (Quadrados/Retangulos)" at 0521 display "Largura: " at 1010 display "Altura : " at 1210 accept largura at 1019 accept altura at 1219 multiply largura by altura giving area-result display "Area : " at 1410 area-result stop run . Identification Division Diviso de identificao do programa. Esta diviso possui a seguinte estrutura: IDENTIFICATION DIVISION. PROGRAM-ID. nome-programa. AUTHOR. comentrio. INSTALLATION. comentrio. DATE-WRITTEN. comentrio. DATE-COMPILED. comentrio. SECURITY. comentrio. Todos os comandos que possuem a palavra comentrio na frente, no possuem nenhum efeito na aplicao, so apenas parmetros opcionais para documentao do programa, mas, caso queira utilizar algum deve ser escrito corretamente para que no cause erro de compilao. Deve-se optar em deixar o parmetro nome-programa com o mesmo nome externo do fonte, pois, este parmetro ser utilizado para identificao em memria aps a primeira carga, ou seja, quando chamamos um programa, o primeiro local de pesquisa feita pelo compilador ser em memria e caso no encontre ele ir procurar no disco e carreg-lo

  • Cobol Bsico DTS Latin America Software

    7(57)

    na memria, aps isto, toda vez em que o programa for chamado de novo no ser necessrio a pesquisa em disco, pois, o programa j estar na memria (caso no tenha sido cancelado), agora vejamos o seguinte exemplo: O Programa Chamador (Principal.cbl) se trata de um programa Batch que ir executar um processo isolado de tratamento dos dados e ele ir executar o Programa Chamado 1 (Prog1.cbl), quando o Prog1 voltar o controle ao Principal este chamar o Programa Chamado 2 (Prog2.cbl) e este Prog2 foi criado a partir de uma cpia de Prog1 e o programador esqueceu de modificar o seu Program-ID deixando-o com Prog1, bem, a confuso ir comear quando o Principal for chamar o Prog1 novamente, como o Prog2 possui a mesma referncia de identificao de Prog1 o compilador ir executar o Prog2 imaginando que se trata do Prog1. Data Division Diviso voltada nica e exclusivamente definio de estruturas de registros, variveis e constantes do programa, ou seja, uma rea de alocao de memria para todo o espao necessrio ao seu programa. Esta diviso possui a Working-Storage Section. E