Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Apostila cobol, Notas de estudo de Análise de Sistemas de Engenharia

COBOL,CICS,ROSCOE

Tipologia: Notas de estudo

Antes de 2010
Em oferta
30 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 14/03/2010

alexandre-gomes-30
alexandre-gomes-30 🇧🇷

4

(1)

1 documento

1 / 78

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
COBOL na Internet
Nossa apostila está disponível em meio magnético no endereço:
http://www.geocities.com/Tokio/Flats/3590/cobol.html
Apresenta-se dividida em módulos compactados (formato zip) podendo ser editada através do
programa Word 6.0/95 e posteriores. Os interessados em imprimi-la devem observar que está no
formato Carta (Letter). Procurem observar as datas de atualização das versões da apostila descritas
na página.
Esta página contém ainda a apostila de Primeiros Socorros que contém uma introdução a conceitos
básicos relacionados ao funcionamento do micro-computador e ensina o procedimento a ser seguido
para utilizar o compilador Microfocus 4.5 que está disponível na mesma.
Agradecendo a ajuda de outros alunos aplicados, vão alguns endereços interessantes (aceitamos
sugestões):
http://www.mtd.co.uk/ (VISUAL COBOL etc...)
http://www.ils-international.com/ilsintl/welcome.htm (“É um site que concentra as informações sobre
COBOL, inclusive links para diversas paginas com exemplos de programas com nível de diculdade,
informações, novidades etc etc etc...”)
http://www.liant.com/rm/prole.html
http://www.mtd.co.uk/win95.html
http://www.icobol.com/
http://www.customsoft.com/tmi/cobol.htm
http://www.cobol.org/
http://www.cobolware.com.br/
http://yi.com/home/HegartyJohn/cobol/index.html
http://www.missouri.edu/~c592073/cobol/
http://www.OiT.co.uk/~james/faq/cobol-faq.html
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
Discount

Em oferta

Pré-visualização parcial do texto

Baixe Apostila cobol e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

COBOL na Internet

Nossa apostila está disponível em meio magnético no endereço: http://www.geocities.com/Tokio/Flats/3590/cobol.html

Apresenta-se dividida em módulos compactados (formato zip) podendo ser editada através do programa Word 6.0/95 e posteriores. Os interessados em imprimi-la devem observar que está no formato Carta (Letter). Procurem observar as datas de atualização das versões da apostila descritas na página.

Esta página contém ainda a apostila de Primeiros Socorros que contém uma introdução a conceitos básicos relacionados ao funcionamento do micro-computador e ensina o procedimento a ser seguido para utilizar o compilador Microfocus 4.5 que está disponível na mesma.

Agradecendo a ajuda de outros alunos aplicados, aí vão alguns endereços interessantes (aceitamos sugestões):

http://www.mfltd.co.uk/ (VISUAL COBOL etc...) http://www.ils-international.com/ilsintl/welcome.htm (“É um site que concentra as informações sobre COBOL, inclusive links para diversas paginas com exemplos de programas com nível de dificuldade, informações, novidades etc etc etc...”) http://www.liant.com/rm/profile.html http://www.mfltd.co.uk/win95.html http://www.icobol.com/ http://www.customsoft.com/tmi/cobol.htm http://www.cobol.org/ http://www.cobolware.com.br/ http://yi.com/home/HegartyJohn/cobol/index.html http://www.missouri.edu/~c592073/cobol/ http://www.OiT.co.uk/~james/faq/cobol-faq.html

Programação Estruturada – Introdução

PORQUE METODOLOGIAS ESTRUTURADAS

A Necessidade de uma metodologia de programação

Um pouco de História

Os problemas motivaram o aparecimento de várias metodologias que tem/tinham como objetivo facilitar o processo de tradução entre as necessidades do usuário e a implementação das mesmas em sistemas de computador. O objetivo era/é: errar menos. O quadro abaixo resume a evolução destas metodologias e técnicas:

Período Metodologias e Técnicas Início dos 70's Primeiros conceitos sobre programação estruturada :

  • Programação sem GO TO
  • Abordagem TOP-DOWN Meio dos 70's Projeto Estruturado :
  • Yourdon/Constantine
  • Wernier Programação Estruturada - Método Jackson Fim dos 70's e Início dos 80's

Análise Estruturada :

  • Gane e Sarson
  • Tom de Marco Modelagem de Dados :
  • Peter Chen
  • James Martin Meio dos 80's Ferramentas CASE (Upper e Lower CASE's )
  • PC-CASE, MOSAICO, dentre outras Abordagem Relacional Fim dos 80's e Início dos 90’s

Ferramentas I-CASE

  • IEF, ADW , IEW, dentre outras Orientação à objetos

A mudança na forma de programar Todas estas mudanças fizeram com que a atividade de programação sofresse radicais transformações na forma como era conduzida. O objetivo do programador foi se alterando gradualmente:

PROGRAMAS

ANTES DEPOIS Compactos Confiáveis Rápidos Fácil Manutenção Eficientes Estruturados Boa Performance Modulares Padronizados

PROGRAMAÇÃO

ANTES DEPOIS Arte Técnica/Método Criatividade Soluções Simples Estilo Padronização

A PROGRAMAÇÃO ESTRUTURADA

Uma breve definição

A primeira vista este programa parece estar bem construído e aparentemente estruturado. Ele se utiliza das 3 estruturas básicas, do raciocínio TOP-DOWN e não se utiliza de comandos de desvio (GO TO’s).

Mas será mesmo? Imagine a seguinte modificação nas especificações do programa:

Suponha que quiséssemos imprimir o triângulo superior direito, como mostra a seguir :

1 2 3 4 5 6 7 8 9 10 4 6 8 10 12 14 16 18 20 9 12 15 18 21 24 27 30 ... 81 90 100

Solução

Identifique o número de alterações que estão sendo feitas no algoritmo anterior ROTINA_TABELA_MULTIPLICAR_ NUMERO-LINHA = 0 EXECUTAR PROC-LINHA ATE' NUMERO-LINHA = 10

PROC-LINHA. NUMERO-LINHA = NUMERO-LINHA + 1 NUMERO-COLUNA = 11 LINHA-NUMERO = ' ' EXECUTAR PROC-NUMERO ATE' NUMERO-LINHA = NUMERO-COLUNA IMPRIMIR LINHA-NUMERO

PROC-NUMERO. NUMERO-COLUNA = NUMERO-COLUNA - 1 LINHA-NUMERO ( NUMERO-COLUNA ) = NUMERO-LINHA * NUMERO-COLUNA

Comentário O programa aparentemente estruturado falha no momento de uma MODESTA manutenção. Porque será isto? A resposta é simples: este programa não tem sua estrutura lógica derivada da estrutura dos dados que o mesmo processa. Este é o último e derradeiro conceito que norteia a metodologia de JACKSON de programação. Se vocês ainda não acreditam vejam o pseudocódigo que será apresentado na próxima aula.

Um programa REALMENTE estruturado

Baseada na primeira especificação do exercício apresentado na aula anterior, a solução abaixo foi obtida através da utilização de uma metodologia de programação (neste caso, o método proposto por JACKSON). Observe esta solução:

ROTINA_TABELA_MULTIPLICAR_ESTRUTURADA NUMERO-LINHA = 1 EXECUTAR PROC-LINHA ATE' NUMERO-LINHA > 10

PROC-LINHA. NUMERO-COLUNA = 1 LINHA-NUMERO = ' ' EXECUTAR PROC-NUMERO ATE' NUMERO-COLUNA > NUMERO-LINHA IMPRIMIR LINHA-NUMERO NUMERO-LINHA = NUMERO-LINHA + 1

PROC-NUMERO.

LINHA-NUMERO ( NUMERO-COLUNA ) = NUMERO-LINHA * NUMERO-COLUNA

NUMERO-COLUNA = NUMERO-COLUNA + 1

Você consegue perceber o quanto ela é flexível? Analise o código acima e poderás verificar como este permite que atendamos ao solicitado na segunda especificação sem a necessidade de modificarmos sua estrutura básica.

Modificações para a SEGUNDA especificação ... PROC-LINHA. NUMERO-COLUNA = 10 EXECUTAR PROC-NUMERO ATE' NUMERO-COLUNA < NUMERO-LINHA ... PROC-NUMERO. ... NUMERO-COLUNA = NUMERO-COLUNA - 1

PROGRAMAÇÃO ESTRUTURADA

Os conceitos básicos Os métodos estruturados se baseiam na utilização dos seguintes conceitos básicos:

Estruturas Básicas

Raciocínio TOP-DOWN

Modelos de Estruturação

Como constatamos anteriormente, a utilização de tais conceitos NÃO GARANTEM um programa estruturado. É preciso algo mais. Este “algo mais” é fornecido ao analisarmos as estruturas dos dados que o programa processará e seus resultantes. Desta análise surgirão modelos intermediários que servirão como ferramental para a geração da estrutura lógica deste programa. Esta é a metodologia proposta por Michael Jackson.

O MÉTODO JACKSON

Definição Geral A construção de um programa deve estar baseada no estudo das estruturas de seus dados de entrada e de saída. A partir deste estudo deriva-se a estrutura do programa e sua lógica.

ESQUEMATICAMENTE

Simbologia e Estruturas

A simbologia adotada é hierárquica como sugere o raciocínio TOP-DOWN. A simbologia serve tanto para representação dos diagramas de uso dos dados (DUD) como também do diagrama da estrutura do programa (DEP). Os diagramas devem ser lidos da esquerda para direita e de cima para baixo.

A simbologia adotada é a seguinte:

Diagrama de Uso de Dados

Conforme foi apresentado anteriormente, a metodologia JACKSON baseia-se na análise das estruturas de dados para obter a estrutura do programa. Com isto em mente veremos alguns exemplos e faremos alguns exercícios. Nestes utilizaremos a simbologia adotada para a criação dos "Diagramas de Uso de Dados" que representam as estruturas de dados processadas pelo programa.

Exemplo 1

Exemplo 4 O arquivo de funcionários consiste de uma série de registros. Cada funcionário possui dois tipos de registros: habilidades e cursos.

Exemplo 5 O arquivo de funcionários consiste de uma série de registros. Cada funcionário possui uma série de registros de habilidades seguida de uma série de registros de cursos.

Exemplo 6 O arquivo de funcionários consiste de uma série de registros. Cada funcionário possui uma série de registros de habilidades ou uma série de registros de cursos.

Exemplo 7 O arquivo de funcionários consiste de uma série de registros. Cada funcionário possui um registro de habilidades seguido vários registros de habilidades e uma série opcional de registros de cursos.

Exemplo 8 O arquivo de fregueses contém uma série de registros para cada freguês. Estes registros representam os vários pagamentos efetuados pelo freguês ao longo do ano. Esta série de registros de um freguês é seguida por um registro de total do freguês. Após todos os fregueses existe um registro totalizador do arquivo de fregueses.

Diagrama de Uso de Dados – Exercícios

Exercícios 1 - O arquivo de continentes possui um único registro chamado continentes. Este registro consiste de seis campos: ÁFRICA, EUROPA, AMÉRICA, AUSTRÁLIA, ÁSIA e ANTÁRTIDA. Cada um desses campos possui dois sub-campos: POPULAÇÃO e ÁREA.

2 - O arquivo de pagamentos consiste de um registro de total seguido de uma série de registros de pagamento. O registro de total possui dois campos: TOTAL-DE-REGISTROS e TOTAL-DE- PAGAMENTOS.

3 - O arquivo de recursos humanos contem um registro para cada empregado. Cada empregado possui um número variável de campos de habilidades.

4 - Uma conversação de computador consiste de mensagens alternadas entre o sistema operacional e o usuário. A conversação sempre começa por uma mensagem do usuário e termina com uma mensagem do sistema.

5 - Um jantar começa pelo couvert, em seguida dever ser escolhida uma sopa das três disponíveis e ela é servida com pão e manteiga. O prato principal consiste de uma mesa de saladas e frios que podem ser consumidas a vontade. Para terminar deve-se optar por chá ou café. Por causa o alto preço do caviar, caso este fosse servido no couvert, não seria possível optar por uma das três sopas disponíveis.

6 - O arquivo de clientes de uma companhia contem uma série de registros de clientes seguido de um registro de total geral. Cada cliente possui uma série de registros de venda seguido de um registro de total geral do cliente. O registro de venda pode ser de 2 tipos: venda à vista ou venda a prazo. O grupo de registros de venda a prazo são compostos de um registro de total da venda seguido por uma série de registros de prestações.

Soluções

1 - Represente o diagrama de uso de dados do exercício da tabela de multiplicar.

O MERGE é o processo de identificação das relações existentes (ou não) entre as estruturas produzidas e consumidas pelo programa. Desta forma, a definição abaixo pode ser vista como uma regra para identificação destas correspondências:

" Merge é o processo de identificação de relações consome/produz tal que esta relação sempre se cumpre numa cardinalidade 1:1 "

Exemplos

  1. Programa de Cópia

Um programa deverá copiar todo o conteúdo de um arquivo (entrada) para outro (saída).

Os DUD's são os seguintes:

A estrutura do programa deve refletir as estruturas dos arquivos que ele processa. Analisando as duas estruturas, identificamos as correspondências entre seus módulos. O arquivo de entrada corresponde claramente ao de saída, na relação de 1-1 entre os elementos presentes no primeiro nível. Para cada registro do arquivo de entrada haverá também um registro no arquivo de saída, logo está identificada a segunda relação 1-1 entre as estruturas de segundo nível. Sendo assim a estrutura do programa fica da seguinte forma:

Uma vez analisados os diagramas de entrada e saída, note que o "merge" entre as duas estruturas, reflete a seguinte situação: existem elementos (retângulos) que, a cada vez que um deles é consumido pelo processamento (entrada), é produzido (saída) outro. Quando este processo ocorre na mesma freqüência entre dois ou mais diagramas, dará origem a apenas elemento (um retângulo no diagrama) que representa a uma parte da estrutura do programa (DEP). Os elementos (retângulos) que não tem correspondentes em outras estruturas serão incluídos na estrutura do programa segundo o "nível de dados" a que ele se refere.

Observe que, ao criar o DEP, já devem ser colocadas, dentro dos retângulos, palavras que reflitam ações pois estas serão as instruções do programa final.

  1. Programa de Impressão

Um programa deverá ler os registros de um arquivo de entrada e gerar um relatório, imprimindo todos os registros de entrada. Um cabeçalho deverá ser impresso, a cada 66 linhas.

Os DUD's dos arquivos são o seguinte:

Faremos agora o diagrama de estrutura de programa (DEP) utilizando o mesmo procedimento do exemplo anterior. Podemos identificar uma correspondência 1-1 entre o Arquivo de Impressão e o Arquivo de Entrada, isto é, para cada arquivo será gerado um relatório. Podemos identificar também que, a cada registro de entrada teremos uma linha de impressão (1-1). O retângulo referente ao cabeçalho do relatório não se relaciona com nenhum elemento do arquivo de entrada. Conforme o enunciado, ele ocorre uma vez a cada 66 linhas. Podemos solucionar este problema de duas formas. A primeira seria a descrita acima , ou seja, uma seqüência composta por cabeçalho e corpo de página, onde a iteração das 66 linhas está implícita no retângulo linhas. Ou como uma seleção dentro da iteração de processamento de relatório. Neste caso estaríamos considerando que, a cada vez que uma linha vai ser impressa, ou esta linha refere-se a um registro ou, caso já tenham sido impressas as 66 linhas, um cabeçalho. Esta segunda solução é a mais indicada quando o programa dá um tratamento diferenciado a cada registro impresso, como veremos nos próximos exemplos.

Estrutura do Programa

  1. Programa de Cópia e Impressão

Um arquivo de entrada é composto de registros do tipo 'C' ou do tipo 'P'. Os registros 'C' deverão ser copiados para um arquivo de saída. Os registros 'P' deverão ser impressos num relatório. Este relatório não tem cabeçalho e é composto de um registro 'P' por linha.

Os DUD's são os seguintes:

DEP (Estrutura do Programa)

Regras finais para o MERGE

Para cada par D1 e D2 do diagrama de uso dos dados e P1 e P2 do diagrama da estrutura do programa deve-se cumprir:

Existe um par único P1 e P2 correspondente a D1 e D2 respectivamente Se D1 e D2 são alternativas de uma decisão (seleção), então P1 e P2 também o são Se D1 e D2 são membros de uma seqüência, então P1 e P2 também o são na mesma ordem Se D1 é uma iteração e D2 seu componente iterado então P1 e P2 também o são, ocorrendo o mesmo número de vezes

EXERCÍCIO PARA CASA

Fazer os Diagramas de Uso de Dados, relacionar as estruturas correspondentes e derivar a estrutura do programa (DEP) para o seguinte problema:

Um arquivo de entrada é composto de uma série de registros. Os registros podem ser de três tipos: 'C', 'P' ou 'S'. Os registros tipo 'C' devem ser gravados em um arquivo de saída. Os registros tipo 'P' devem ser impressos em um relatório com cabeçalho e no máximo 50 linhas por página. Os registros tipo 'S' possuem um campo de valor que deverá ser acumulado e o valor total acumulado impresso ao final do relatório de registros tipo 'P'.

Derivação DUD -> DEP - Alocação de Operações Executáveis Exemplos – Exercícios

Introdução

Técnica Básica de Projeto

O fundamento da técnica de Projeto de Programa proposta por Michael A. Jackson (1988) esta calcado num procedimento de três passos:

Considere o ambiente do problema e registre o seu conhecimento do mesmo através de estruturas de dados adequadas (DUD's) Construa uma estrutura de programa (DEP) baseado na estrutura dos dados (DUD’s) Defina a tarefa a ser executada em termos de operações elementares e distribua cada uma dessas operações nos componentes estruturais adequados.

Os dois primeiros passos já foram apresentados. Vamos, agora, demonstrar como identificar e como alocar as chamadas operações executáveis.

OPERAÇÕES EXECUTÁVEIS

01 ABRIR ARQUIVO DE ENTRADA 1 / PGM

02 ABRIR ARQUIVO DE IMPRESSÃO 1 / PGM

03 ABRIR ARQUIVO DE COPIA 1 / PGM

04 FECHAR ARQUIVO DE ENTRADA 1 / PGM

05 FECHAR ARQUIVO DE IMPRESSÃO 1 / PGM

06 FECHAR ARQUIVO DE COPIA 1 / PGM

07 GRAVAR REGISTRO TIPO 'C' 1 / REG. 'C'

08 GRAVAR REGISTRO TIPO 'P' 1 / REG. 'P'

09 IMPRIMIR CABEÇALHO 1 / PÁGINA

10 IMPRIMIR VALOR ACUMULADO 1 / PGM

Operações de Especificação

11 INICIALIZAR CONTADOR DE PÁGINA 1 / PGM

12 INICIALIZAR CONTADOR DE LINHA 1 / PGM +

1 / PÁGINA

13 ZERAR ACUMULADOR DE VALOR 1 / PGM

14 ACUMULAR VALOR 1 / REG. 'S'

15 INCREMENTAR CONTADOR DE PÁGINA 1 / PÁGINA

16 INCREMENTAR CONTADOR DE LINHA 1 / LINHA

Operações de Controle de Iteração

17 INICIALIZAR FIM DE ARQUIVO = 'NÃO' 1 / PGM

18 SETAR FIM DE ARQUIVO = 'SIM' 1 / EOF

Alocando as operações no diagrama e controlando as iterações:

Exercício

Construir o diagrama de uso de dados , derivar a estrutura do programa e alocar as operações executáveis do problema de impressão da tabela de multiplicar.

Derivação DUD -> DEP - Exercícios

Exercício 1

O problema consiste em imprimir um número 'n' de etiquetas. Sendo este número 'n' informado através de um único registro contido em um arquivo de parâmetros. Cada etiqueta deverá ter o seguinte layout:

EMPRESA TRAMBIQUE S/A

ATIVO NUMERO : NNNNN.D

ANDAR :

SETOR :

Onde NNNNN é um número seqüencial iniciado em 00001 e D é o dígito verificador deste número sendo calculado da seguinte forma :

N N N N N

x x x x x 5 6 7 8 9 = = = = = Z + Z + Z + Z + Z = K / 11 ---> RESTO = NN--> D

Exercício 2

Um arquivo é composto de uma série de registros. Cada registro correponde a uma frase. Cada frase sempre termina por um ponto final (.). Faça um programa que imprima o total de palavras de cada frase considerando que cada palavra está separada da outra por um espaço e ao final o número de frases processadas.

Observações :

Para acesso a cada letra de uma frase considere que a mesma se encontra em um vetor de caracteres de no máximo 80 posições Na alocação das operações executáveis não é necessário preocupar-se com a alocação das operações de LEITURA.

Soluções: Aula 010 Alocação de Operações de Leitura Modelos de Estruturação - Processamento Seqüencial

Alocação de Comandos de Leitura

Nesta aula abordaremos os aspectos envolvidos na alocação das operações leitura em arquivos sequenciais.

Como iremos controlar o processamento de um arquivo sequencial? Partimos do princípio que processamento envolve a manipulação de dados, e que estes dados estão contidos em um arquivo. Como podemos garantir que, ao iniciarmos o processamento, o arquivo a ser utilizado conterá algum elemento? Como podemos nos precaver e evitar que nosso programa seja executado incorretamente devido a falta de dados?

Consideremos um programa que processa todos os registros de um arquivo de input e os grava em um arquivo de output. O DEP abaixo representa o MERGE das estruturas de entrada e saída:

DEP

Programa

Copia

Copiar

Registros

Após a alocação das operações executáveis o programa final poderia ser o seguinte:

DEP com Operações

onde: C1: até fim-arquivo = ‘SIM’

De acordo com esta estratégia, a estrutura do programa toma a seguinte forma:

onde: C1: até fim-arquivo = ‘SIM’

Desta maneira, para um arquivo de entrada com N registros, teremos sempre N+1 operações de leitura. Este modelo de estruturação é conhecido como Técnica da leitura adiante ou Princípio da primeira leitura.

Regra Para utilização da leitura Adiante

O registro deve ser pensado não como o próximo mas como o atual. Processar o registro corrente completamente Ler o próximo registro e torná-lo disponível para exame

Exercícios

Retorne às aulas 08 e 09 e coloque as novas operações executáveis referentes a leitura e ao controle da mesma.

Descreva a diferença existente entre as duas estruturas abaixo:

Estrutura 1:

Estrutura 2:

Qual das duas é a mais otimizada? Por que?

Qual o problema que irá ocorrer durante a execução de qualquer uma das duas estruturas?

Aloque as operações executáveis no diagrama abaixo:

I-O Freqüência

01 ABRIR ARQUIVO ALMOXAR. 1 / PGM

02 ABRIR ARQUIVO RELATORIO 1 / PGM

03 FECHAR ARQUIVO ALMOXAR. 1 / PGM

04 FECHAR ARQUIVO RELATORIO 1/PGM

05 LER ARQUIVO ALMOXAR. 1/REG + 1/PGM

06 IMPRIMIR TOTAL SEÇÃO 1/SEÇÃO

Especificação

07 ZERAR TOTAL SEÇÃO 1/SEÇÃO

08 ACUMULAR QUANTIDADE 1/REG.

Controle de Iteração

09 INICIALIZAR FIM-ARQUIVO = 'NAO' 1/PGM

10 SETAR FIM-ARQUIVO = 'SIM' 1/EOF

11 SETAR SEÇÃO-ANTERIOR = SEÇÃO-ATUAL 1/SEÇÃO

C1: até fim-arquivo = ‘SIM’ C2: até fim-arquivo = ‘SIM’ ou seção-atual <> seção-anterior

COBOL - Introdução - Estrutura - Regras de Codificação

O COBOL

Acrônimo de COmmon Business Oriented Language Grupo de trabalho do departamento de defesa norte americano com o objetivo de criar uma linguagem comercial Primeira versão agosto 1961 Principais diretrizes:

  • orientação comercial
  • independência de máquina ( portabilidade )
  • Modular

Estrutura da Linguagem

Análoga a uma empresa Composta de: DIVISÕES ----> SEÇÕES ----> PARÁGRAFOS -----> COMANDOS / CLÁUSULAS

As Divisões

IDENTIFICATION DIVISION Identificação do programa.

Listar em um relatório os funcionários existentes em um arquivo, na ordem em que se encontram no mesmo.

ENVIRONMENT DIVISION

Introdução

Função Composição: - CONFIGURATION SECTION

  • INPUT-OUTPUT SECTION

Sintaxe

ENVIRONMENT DIVISION. [CONFIGURATION SECTION.] [SOURCE-COMPUTER. <sentença>.] [OBJECT-COMPUTER. <sentença>.] [SPECIAL-NAMES.] [DECIMAL-POINT IS COMMA.] OBS. : sem dpc 1000. com dpc 1000, [INPUT-OUTPUT SECTION.] [FILE-CONTROL.] [SELECT <file-name> ASSIGN TO {DISK | PRINTER} [ORGANIZATION IS {SEQUENTIAL | LINE SEQUENTIAL | INDEXED | RELATIVE}] [ACCESS MODE IS {SEQUENTIAL | RANDOM | DYNAMIC}]].

ORGANIZAÇÃO DE ARQUIVOS

Acesso X Organização

Acesso: Modo pelo qual os registros serão recuperados pelo programa. Organização: Disposição dos registros dentro de um arquivo.

Tipos de Acessos

Seqüencial: Neste tipo de acesso, os registros são recuperados um após o outro até que o sistema operacional retorne para o programa o sinal de que foi encontrado o fim de arquivo.

Randômico: Os registros são recuperados de forma aleatória, isto é, de pontos diferentes do arquivo. Esta busca é direcionada pelo programa que informa o elemento que está sendo procurado (através de uma chave ou de um identificador).

Dinâmico: Este modo implementa uma mistura das características apresentada pelos modos acima. Seu procedimento primeiro posiciona diretamente em um ponto determinado do arquivo (como o acesso randômico) e recupera, dali para frente, registro a registro do arquivo até o final (como o acesso seqüencial) ou até que a lógica implementada no programa o posicione em outro ponto do arquivo.

Conceituando uma chave

Definição

"É uma seqüência de um ou mais campos dentro de um arquivo que procura identificar de forma única um determinado registro permitindo desta forma a sua recuperação direta".

Tipos

CHAVE PRIMÁRIA: é um campo que apresenta um valor diferente em cada registro do arquivo. É a que permite identificar, em arquivos que permitem acesso randômico, o registro que se quer

recuperar. Por exemplo a matrícula do aluno no cadastro de aluno, ou o CPF de um funcionário no cadastro de funcionários.

CHAVE SECUNDARIA ou CHAVE ALTERNADA ou CHAVE ESTRANGEIRA: é aquela que PODE ou NÃO representar um valor diferente para cada registro do arquivo. Por exemplo o nome de um funcionário no cadastro de funcionários, ou o departamento no qual o funcionário está lotado neste mesmo cadastro.

CHAVE DE ORDENAÇÃO: é uma indicação de como os registros estão dispostos entre si. É uma indicação LÓGICA não física.

Tipos de Organização de Arquivos

Seqüencial

Estrutura Básica

Em arquivos de organização seqüencial os registros estão dispostos um após o outro. Eles permanecem nos arquivos na ordem em que foram inseridos. Para acessar o 5 o^ registro você precisa LER os 4 registros anteriores. Desta forma arquivos seqüenciais só permitem acesso seqüencial.

Atualização de arquivos seqüenciais

Arquivos seqüenciais permitem a inserção de registros mas somente ao final do arquivo. Os registros podem ser atualizados mas somente de forma seqüencial. NÃO é possível a deleção de registros ou a inserção de registros no meio do arquivo. Desta forma a única maneira de apagar ou inserir registros no meio de um arquivo seqüencial é gerar uma nova versão do mesmo (esta técnica, que será analisada no final do curso, se chama BALANCE-LINE).

Seqüencial-Indexada

Estrutura Básica

Cada registro possui uma chave primária obrigatória e baseado nesta chave é que os registros serão armazenados e posteriormente acessados. Os registros quando armazenados ficam por ordem desta chave. Esta chave pode ser alfanumérica. A implementação física deste conceito pode ser feita das formas descritas a seguir.

Estrutura mais antiga (Índice , Dados e Overflow)

Nesta estrutura o arquivo possui obrigatoriamente três áreas a saber :

  • Área de ÍNDICE
  • Área de DADOS
  • Área de OVERFLOW

Mostrar o processo de criação das áreas de ÍNDICE e DADOS

  • Cylinder index
    • Track index

Mostrar processo de utilização da área de OVERFLOW

MÉTODO 1

1 2 4 5 ( incluir o 3 )

DADOS 1 2 3 4 ^ (pointer para 5 )