






































































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
Encontra documentos específicos para os exames da tua universidade
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
COBOL,CICS,ROSCOE
Tipologia: Notas de estudo
Oferta por tempo limitado
Compartilhado em 14/03/2010
4
(1)1 documento
1 / 78
Esta página não é visível na pré-visualização
Não perca as partes importantes!







































































Em oferta
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 :
Análise Estruturada :
Ferramentas I-CASE
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
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
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
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.
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
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.
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
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
Operações de Especificação
Operações de Controle de Iteração
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:
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
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
Especificação
Controle de Iteraçã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:
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.
Introdução
Função Composição: - CONFIGURATION 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 :
Mostrar o processo de criação das áreas de ÍNDICE e DADOS
Mostrar processo de utilização da área de OVERFLOW
1 2 4 5 ( incluir o 3 )
DADOS 1 2 3 4 ^ (pointer para 5 )