





















































































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
You want to learn Cobol, a cool language ? Thats your chance !! :-)
Tipologia: Esquemas
1 / 93
Esta página não é visível na pré-visualização
Não perca as partes importantes!
O Cobol é uma linguagem de alto nível criada no ano de 1959. A palavra Cobol é uma abreviação de: Common Business Oriented Language. Como seu nome indica, o objetivo desta linguagem é permitir o desenvolvimento de aplicações comerciais para pessoas sem conhecimento profundo de computadores. Por isso a linguagem Cobol usa frases normais da língua inglesa, e a estrutura de um programa Cobol se assemelha a um texto com divisões, parágrafos e frases em inglês. Depois de escrito o programa Cobol (ou programa fonte), é necessário traduzí-lo para a linguagem interna do computador (linguagem de máquina), convertendo-se então em um programa objeto. Esta conversão é feita pelo próprio computador, usando o programa compilador de Cobol. Damos em seguida a definição de alguns termos importantes para o desenvolvimento do curso: Byte: conjunto de 8 bits (pontos magnéticos) que formam uma posição de memória. ASCII: tabela usada em micros para conversão do valor binário dos bits de um byte em um caracter. EBCDIC: tabela da IBM para conversão do valor binário dos bits de um byte em um caracter. Programa fonte: Texto de um programa escrito em uma linguagem de alto nível (ex.: Cobol). Programa objeto: Programa convertido para a linguagem interna do computador (linguagem máquina). Compilador: Conversor de programa fonte em programa objeto.
2.3. Área A Posição a partir do qual se escreve nome de parágrafos. 2.4. Área B Posição a partir da qual se escrevem as instruções Cobol. Veja o exemplo de código fonte a seguir: NUM I A AREA B COMEN. 000110 * ESTE E UM PARAGRAFO PROG1 000120 PARA GRAFO-1. PROG1 000130 ADD VALOR TO LUCRO. PROG1
De maneira semelhante a um livro com seus capítulos, parágrafos e itens, um programa Cobol é formado por uma hierarquia de Divisions, Sections, parágrafos e instruções. Como regra de sintaxe, toda declaração de Division, Section, parágrafo ou instrução deve ser terminado por ponto final (.). O código Cobol possui quatro divisões que devem ser utilizadas nesta ordem: IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. Como foi explicado no item anterior (Formato do fonte) a declaração das DIVISIONS devem se iniciar na área A do texto (coluna 8). 3.1. IDENTIFICATION DIVISION Esta é a divisão de identificação do programa. Não contém sections, mas somente alguns parágrafos preestabelecidos e opcionais. O único parágrafo obrigatório é o PROGRAM-ID (Nome do programa). O nome do programa deve ser uma palavra com até 8 caracteres (letras ou números), começando por uma letra. Esta divisão possui a seguinte estrutura: IDENTIFICATION DIVISION. PROGRAM-ID. nome-programa. AUTHOR. comentário. DATE-WRITTEN. comentário. DATE-COMPILED. comentário. SECURITY. comentário. REMARKS. comentário.
Esta seção destina-se a uma descrição geral do ambiente do computador. Ela é composta por três parágrafos: SOURCE-COMPUTER, OBJECT-COMPUTER e SPECIAL- NAMES conforme mostrado acima. SOURCE-COMPUTER - identifica o computador onde foi confeccionado o programa (opcional). OBJECT-COMPUTER - identifica o computador do ambiente de produção (opcional). SPECIAL-NAMES - tem comandos pré-definidos em Cobol, para especificar alfabeto, moeda ou separador de decimal (vírgula ou ponto). Porém todos os comandos são opcionais. O separador de decimais é o mais freqüentemente, indicando que vai se usar a vírgula para separar as casas decimais. A sintaxe correta é: SPECIAL-NAMES. DECIMAL-POINT IS COMMA. 3.2.2 INPUT-OUTPUT SECTION. Esta seção destina-se a configuração dos arquivos que o programa utilizará. Ela possui dois parágrafos: FILE-CONTROL e I-O-CONTROL. FILE-CONTROL - neste parágrafo devemos especificar cada um dos arquivos que o programa irá utilizar, de forma individualizada. I-O-CONTROL - contém vários parágrafos opcionais para especificar opções de uso de fitas magnéticas. Como este dispositivo caiu em desuso, este parágrafo não é mais usado atualmente. No parágrafo FILE-CONTROL, usamos uma instrução SELECT para cada arquivo descrito. A sintaxe correta é: SELECT nome-do-arquivo ASSIGN TO dispositivo-do-computador. No exemplo abaixo, mostraremos a ENVIRONMENT DIVISION de um programa que irá acessar um arquivo chamado CLIENTES.
O programador pode usar qualquer palavra com até 30 caracteres como nome-de arquivo, mas uma vez definido, este deverá ser usado igualmente em todos os pontos do programa quando se referir a este arquivo – nome interno. O formato da cláusula dispositivo-do-computador varia conforme o computador (micro, mainframe, etc), mas no caso do mainframe usa-se o formato mostrado no exemplo, composto de 3 segmentos, separados por hífen: Tipo de dispositivo: UR - para dispositivos de registro fixo (impressoras, cartão). UT - para dispositivos de registro variável (fitas). DA - para dispositivos de acesso aleatório (discos). Modo de acesso: S – Sequencial. D – Direto (Randômico). I – Indexado. Nome externo do arquivo – nome pelo qual o operador do computador reconhece o arquivo. O nome externo geralmente está associado aos comandos JCL na execução do programa. Para arquivos abertos para leitura (veja OPEN INPUT e OPEN I-O), pode-se especificar a cláusula OPTIONAL no SELECT. Com esta clausula, se ao tentarmos abrir o arquivo e este não existir, ele é automaticamente criado vazio. Sintaxe do SELECT com OPTIONAL: SELECT OPTIONAL nome-do-arquivo ASSIGN TO dispositivo.
Na codificação de programa, é exigido que toda a hierarquia de um item de grupo inicie com um item de nível 01. A partir dele, cada nível subordinado deve ter o mesmo número, por exemplo, se para o segundo nível for escolhido o número 3 todos os itens do segundo nível devem ter nível 03, e se o terceiro nível tiver o numero 10, todos os itens do terceiro nível devem ter nível 10, e assim sucessivamente. 3.3.1.2. NOMEAÇÃO DO DADO Pode-se utilizar qualquer palavra – de no máximo 30 caracteres -- incluindo letras, números e hífen, sendo que pelo menos uma deve ser letra. Este nome deverá ser usado em todos os pontos do programa a que se referir a este dado. Se não for necessário realizar uma referência no programa deste dado, o nome poderá ser omitido. Porém, para o COBOL ele é obrigatório. Neste caso, usa-se então a palavra FILLER que identifica dados anônimos. Por exemplo: 01 WRK-INICIO-PGM – este dado não será utilizado no restante do programa. Poderia substituir por: 01 FILLER 3.3.1.3. FORMATO DO DADO O formato dos dados é especificado pela palavra reservada PICTURE, ou pela sua abreviação PIC. A cláusula PICTURE é usada para descrição de informações sobre itens, tais como: tamanho, sinal, tipo (numérico, alfanumérico ou alfabético). Tipos possíveis: ALFABÉTICO - é representado por letras mais o espaço, e o caractere usado é a letra “A”.
Por exemplo: 77 WRK-DADO1 PICTURE IS AAA VALUE ‘ABC’. 77 WRK-DADO2 PIC IS AAA VALUE ‘ABC’. 77 WRK-DADO3 PIC A(3) VALUE ‘BCD’. ALFANUMÉRICO - é representado por letras, números e caracteres. O caractere usado é a letra “X”. A representação de dados não pode exceder a 120 caracteres. Por exemplo: 01 WRK-DADO1 PIC XXX VALUE ‘ANO’. 01 WRK-DADO2 PIC X(04) VALUE ‘KKKK’. NUMÉRICO - usa-se para representação exclusiva de itens numéricos. Os caracteres usados são: “9”, “V”, “P”, “S”. “9” = é utilizado para indicar a posição do campo que contém um dígito de “0” a “9”. “V” = é usado para mostrar a posição da vírgula decimal. O ponto decimal, se colocado, não faz parte do item. “P” = representa um dígito numérico zero (0). “S” = indica a presença de sinal, deve ser colocado antes do “9” A quantidade de caracteres contido no dado é especificado no formato repetindo-se as letras acima. Por exemplo, se o item WRK-QUANT-PROD tem 5 algarismos, seu formato deve ser: 77 WRK-QUANT-PROD PIC 99999. OU 77 WRK-QUANT-PROD PIC 9(05). Quando um item numérico tiver casas decimais, não se carrega na memória o separador decimal (vírgula).
Para os dados numéricos a inicialização deve ser: 77 WRK-IDADE-MINIMA PIC 99 VALUE 18. Isto significa que quando o programa for iniciado, a variável WRK-IDADE-MINIMA conterá o valor 18. Para os dados alfanuméricos a inicialização deve ser inserida entre aspas: 77 WRK-NOME-RUA PIC X(20) VALUE ‘RUA FIDALGA’. Isto significa que quando o programa for iniciado, a variável WRK-NOME-RUA conterá o valor RUA FIDALGA. Os literais alfanuméricos podem ter no máximo 120 caracteres. Podem-se ainda usar como valor inicial as CONSTANTES FIGURATIVAS: ZEROS, SPACES, HIGH-VALUES ou LOW-VALUES. O HIGH-VALUES – maior valor possível assumido pela variável - e LOW-VALUES – menor valor possível assumido pela variável - só poderão ser utilizados em variáveis do tipo alfanuméricas ou item de grupo (também consideradas alfanuméricas). Este tipo de inicialização é largamente utilizada para programas que executam balance-line (batimento entre arquivos). IMPORTANTE: LOW-VALUES é diferente de espaços -- indica que o conteúdo da variável na memória deve ter os seus bytes com todos os bits desligados.
Exemplos de inicialização em hexadecimal: INICIALIZAÇÃO COM TAMANHO VARIAVEL FORMATO HEXADECIMAL ZEROS PIC 9(03) FFF 000 SPACES PIC X(03) 444 000 LOW-VALUES PIC X(03) 000 000 HIGH-VALUES PIC X(03) FFF FFF 3.3.2. ESTRUTURA - DATA DIVISION Na DATA DIVISION é especificado o layout do registro de cada arquivo – entrada/saída utilizados no programa. Também serve para declaração das áreas de trabalho e constantes necessárias para o processamento dos dados. A DATA DIVISION é composta por quatro seções: FILE SECTION. WORKING-STORAGE SECTION. REPORT SECTION. LINKAGE SECTION. 3.3.2.1. FILE SECTION A FILE SECTION é usada para definir o layout / conteúdo do registro do arquivo que o programa irá ler / gravar. Vimos anteriormente, que na INPUT-OUTPUT SECTION (ENVIRONMENT DIVISION), que para cada arquivo a ser tratado no programa deverá haver uma instrução SELECT especificando e definindo um nome para o arquivo. Na FILE SECTION precisamos definir a estrutura de cada um destes arquivos. Isto é feito através do parágrafo FILE DESCRIPTION (FD).
Se não for colocada a cláusula “RECORDING MODE”, o compilador determinará pelo cartão “DD” – JCL ou catálogo. LABEL RECORD - Especifica o formato do label. Ex.: LABEL RECORD IS XXXXXXXX Onde “XXXXXXXX” poderá ser definido com: STANDARD -> padrão OMITTED -> omitido Quando omitido assume “LABEL STANDARD”. Para impressora, leitora de cartões, perfuradoras, usar “OMITTED”, pois não possuem “LABELS”. Os demais casos usar “STANDARD”. DATA RECORD - Serve apenas como documentação, identificando os registros do arquivo pelo nome. Ex.: DATA RECORD IS NOME-DO-DADO-1 ou DATA RECORD ARE NOME-DADO-1, NOME-DADO-2, ... CLÁUSULA FILLER É usada para um item elementar ou um item de grupo, e nunca será refenciado. Pode ser usada na “DATA DIVISION” e suas “SECTIONS”. Exemplo: 01 REGISTRO. 02 FILLER PIC X(100). CLÁUSULA VALUE É usada para definir um valor inicial para um item da “WORKING-STORAGE SECTION”. Não pode ser usada na “FILE SECTION”. Exemplo: 01 CABEC01. 02 FILLER PIC X(10) VALUE SPACES. 02 FILLER PIC X(06) VALUE ‘FOLHAS’. 02 CB01-DATA PIC X(10) VALUE SPACES.
O arquivo CLIENTES definido na INPUT-OUTPUT SECTION, seria detalhado aqui como: DATA DIVISION. FILE SECTION. FD CLIENTE RECORDING MODE IS F LABER RECORDING IS STANDARD BLOCK CONTAINS 0 RECORDS RECORD CONTAINS 80 CHARACTERS DATA-RECORD IS REG-CLIENTES. 01 REG-CLIENTES. 03 COD-CLIENTE PIC 9(8). 03 NOME-CLIENTE PIC X(20). 03 ENDER-CLIENTE PIC X(40). 03 VALOR-CLIENTE PIC 9(10)V99.