CURSO DE COBOL BÁSICO 2014 eibneti eibneti CONTATO: 3043-6060 SETOR COMERCIAL SUL –BRASILIA DF
Professor: Reinaldo Tavares Tavares CONTATOS: TEL:(61) 8433-3527 TEL:(61) 8433-3527
[email protected] eibneti
1
MAINFRAME É: Mainframe é um computador de grande porte, Mainframe é para o processamento de um volume grande de informações. Os mainframes são capazes de oferecer serviços de processamento a milhares de usuários através de milhares de terminais conectados diretamente ou através de uma rede, ao mesmo tempo ( tempo (O termo mainframe se refere ao gabinete principal que alojava a unidade central de fogo nos nos primeiros computador computadores). es).
MAINFRAME É: Mainframe é um computador de grande porte, Mainframe é para o processamento de um volume grande de informações. Os mainframes são capazes de oferecer serviços de processamento a milhares de usuários através de milhares de terminais conectados diretamente ou através de uma rede, ao mesmo tempo ( tempo (O termo mainframe se refere ao gabinete principal que alojava a unidade central de fogo nos nos primeiros computador computadores). es).
QUANDO SURGIU MAINFRAME? Os mainframes nasceram em 1946 1946 e e foram sendo aperfeiçoados aperfeiçoados.. Em 7 de abril de abril de 1964 1964,, a IBM IBMapresentou apresentou o System/360 System/360,, mainframe que, na época, foi o maior projet projeto o de uma empresa. Desde então então,, outras empresas – como a HP HP e e a Burroughs (atual Unisys Unisys)) – lançaram lançar am seus modelos model os de mainframe. Existem mainframes em operação no mundo inteiro.
O QUE FAZ UM MAINFRAME? Processamento de massa dados enorme. Agilidade no processamento. Garantia processamento e armagenamento dos dados. Disponibilidade 24 horas
por 7 dias durante todo o ano.
Onde se aplica os programas cobol mainframe?
eibneti
5
EMPRESAS PRIVADAS E GOVERNO: BANCO DO BRASIL CEF MINISTERIO DA JUSTIÇA (PF) EXERCITO BRASILEIRO SERPRO CEB OI CAIXA SEGUROS SICOOB eibneti
6
TIPOS DE PROGRAMAS:
•
•
PROGRAMA BATCH PROGRMA ONLINE
eibneti
7
INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO
eibneti
8
O QUE LÓGICA? •
Lógica (do grego λογική logos1 ) tem dois significados principais: discute o uso de raciocínio em alguma atividade e é o estudo normativo, filosófico do RACIOCÍNIO vá lido.2 No segundo sentido, a lógica é discutida principalmente nas disciplinasde filosofia, matemática e ciênci a da computação. eibneti
9
Introdução à Lógica de Programação •
•
•
Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema. Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. eibneti
10
EXERCICIO 1: •
•
•
•
•
•
•
•
•
Descreva sua logica para tomar banho, em um membro de um arquivo particionado. Com nome do membro banho: Regra: Tem que ter o seguinte comentário: Os Asterisco tem que começar na coluna 7 e até 72. Tem que começar pela cabeça e terminar no pés. ************************************** * INICIO DO BANHO. * ************************************** *FIM DO BANHO. * ************************************** eibneti
11
ALGORITMO •
Um algoritmo é formalmente uma seqüência finita de passos que passos que levam a execução de uma tarefa.
eibneti
12
Programas : Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, computador (Pascal, C, Cobol Cobol,, Fortran, Fortr an, Visual Basic entre outras) eibneti
13
PSEUDOCÓDIGO •
•
Os algoritmos são descritos em uma linguagem chamada pseudocódigo. pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação.
FASE: ENTRADA -> PROCESSAMENTO ->SAIDA eibneti
14
Diagrama / fluxograma de Bloco •
O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento.
eibneti
15
Constantes, Variáveis e Tipos de Dados
eibneti
16
VARIAVEL •
•
•
•
•
•
Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado. EXEMPLO: NOME DE FUNCIONARIO NOME DA VARIAVEL: NOMFUNC TAMANHO: 32 CARACTERES TIPO: CARACTER eibneti
17
Constantes •
•
Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal. EXEMPLO: MEDIA DE NOTA COM DUAS NOTAS MEDIA = 2 -> MEDIA / (N1+N2) eibneti
18
Tipos de Variáveis •
As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres, Alfanuméricas ou lógicas.
eibneti
19
Operadores •
•
•
•
•
•
•
Os operadores são meios pelo qual incrementamos, decrementamos, comparamos e avaliamos dados dentro do computador. Temos três tipos de operadores: OPERAÇÃO SÍMBOLO Adição + Subtração Multiplicação * Divisão / Exponenciação ** eibneti
20
Hierarquia das Operações Aritméticas •
•
•
•
1 º ( ) Parênteses 2 º Exponenciação 3 º Multiplicação, divisão (o que aparecer primeiro) 4 º + ou – (o que aparecer primeiro)
eibneti
21
EXEMPLO •
TOTAL = PRECO * QUANTIDADE
•
1 + 7 * 2 ** 2 –1 = 28
•
3 * (1 – 2) + 4 * 2 = 5
eibneti
22
Operadores Relacionais •
•
•
•
•
•
•
Descrição Símbolo Igual a = Diferente de <> ou # Maior que > Menor que < Maior ou igual a >= Menor ou igual a <= eibneti
23
EXEMPLO •
•
•
•
•
•
•
•
•
•
Tendo duas variáveis A = 5 e B = 3 Os resultados das expressões seriam: Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B Falso PAGINA:20 eibneti
24
Os operadores lógicos são: •
•
•
E AND OU OR NÃO NOT
eibneti
25
EXEMPLO •
•
•
•
•
•
•
•
•
Suponha que temos três variáveis A = 5, B = 8 e C =1 Os resultados das expressões seriam: Expressões Resultado A = B AND B > C Falso A <> B OR B < C Verdadeiro A > B NOT Verdadeiro A < B AND B > C Verdadeiro A >= B OR B = C Falso A <= B NOT Falso eibneti
26
EXERCICIO •
•
•
•
•
•
Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B –A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( ) eibneti
27
Operações Lógicas •
•
•
•
•
•
•
•
Pegar a bala · A bala é de morango? morango? · Se sim, sim, não chupe a bala · Se não, não, continue com o algoritmo · Retirar o papel · Chupar a bala · Jogar o papel no lixo PAGINA 23 eibneti
28
EXERCICIO •
Elabore um diagrama de blocos que leia um número. Se positivo armazene-o em A, se for negativo, em B. No final mostrar o resultado
eibneti
29
Estrutura de Decisão e Repetição
eibneti
30
Comandos de Decisão •
•
•
Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente seqüenciais. SE ENTÃO / IF ... THEN SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO
eibneti
31
EXEMPLO •
•
•
IF MEDIA >= 5 Then Text1 = “APROVADO” ENDIF
eibneti
32
SE ENTÃO SENÃO / IF ... THEN ... ELSE
•
SE MÉDIA >= 5.0 ENTÃO ALUNO APROVADO
•
SENÃO
•
•
ALUNO REPROVADO
eibneti
33
EXEMPLO •
•
•
•
•
IF MEDIA >= 5 Then Text1 = “APROVADO” ELSE Text1 = “REPROVADO” ENDIF
eibneti
34
CASO SELECIONE / SELECT ... CASE •
A estrutura de decisão CASO/SELECIONE é utilizada para testar, na condição, uma única expressão, que produz um resultado, ou, então, o valor de uma variável, em que está armazenado um determinado conteúdo.
eibneti
35
EXEMPLO •
•
•
•
•
•
•
•
•
•
•
•
•
•
IF ACONTA EQUAL ZEROES CASE TRUE WHEN BCONTA = 2 MOVE 16 TO K WHEN BCONTA = 3 MOVE 20 TO FATOR MOVE 0 TO CCONTA DCONTA WHEN BCONTA = 4 IF CAR-ENTRA EQUAL "N" OR "n“ MOVE 3 TO FATOR ELSE MOVE 4 TO FATOR END-IF END-IF.
eibneti
36
Comandos de Repetição •
Utilizamos os comandos de repetição quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou até que seja alcançado.
eibneti
37
Trabalharemos com modelos de comandos de repetição •
•
•
•
•
· · · · ·
Enquanto x, processar (Do While ...Loop); Até que x, processar ... (Do Until ... Loop); Processar ..., Enquanto x (Do ... Loop While); Processar ..., Até que x (Do ... Loop Until) Para ... Até ... Seguinte (For ... To ... Next)
eibneti
38
EXEMPLO •
•
•
•
•
Nr = 0 Do While Nr <= 100 Nr = Nr + 1 WRITE NR Loop
eibneti
39
EXEMPLO •
•
•
•
•
•
•
Nr = 0 Do Until Nr = 100 LER ARQUIVO IF NOME-FUN = JOÃO ENTÃO MOVE 100 TO NR END-IF Loop eibneti
40
FIM INTRODUÇÃO A LÓGICA
•
INICIO A LINGUAGEM DE PROGRAMAÇÃO COBOL
eibneti
41
HISTORIA DO COBOL •
Em 1959, foi tomada a decisão de criar uma fonte de linguagem apropriada para dados comerciais, em uma reunião no Pentágono em Washington, DC. Os participantes desta reunião eram representantes de usuários de computadores na indústria privada e governo, fábricas de computadores e outras partes interessadas. O propósito da reunião era discutir a necessidade de uma linguagem geral, direcionada para serviços dentro de dados comerciais, e a possibilidade de criar desta maneira uma linguagem. Como resultado uma comissão foi nomeada com o nome de CODASYL ( Conference On Data System Languages). A comissão começou a analisar as questões discutidas na reunião e uma subcomissão foi, diretamente, incumbida da tarefa de definir uma linguagem adaptada para administrar processamento de dados. Em 1960, foi publicada a gramática, usualmente chamada Relatório COBOL-60. Esta linguagem continha inúmeros erros e logo foi rev isada, em 1961, e o Relatório COBOL-61 foi publicado, formando a base para os mais comuns compiladores COBOL. A continuação do trabalho da comissão estava mais concentrada em seguir todos os passos originados no Relatório COBOL-61. Isto levou a uma versão ampliada do COBOL, descrita em um Relatório provisório "COBOL-61 - Versão Estendida", que foi publicada em 1962. Formalmente, isto significava que um número de novos elementos foi adicionado ao Relatório anterior. Um relatório completamente novo foi publicado no fim do ano de 1965, e foi definido como COB OL-65. Ele continha praticamente todos os elementos de "Versão 4 Estendida", porém numa forma totalmente revisada, junto com alguns elementos novos, projetados principalmente por causa do uso expressivo das m emórias de acesso aleatório (RAM). Embora o COBOL tenha sido desenvolvido e mantido pela CODASYL, ele foi também estabelecido como uma Linguagem Padrão pelo Ins tituto Americano de Padrões Nacionais (ANSI). Os fornecedores dos compiladores COBOL geralmente se baseavam no COBOL Padrão Nacional Americano. Um padrão inicial, noticiado em 1968, foi revisado em 1974 e novamente na metade dos anos 80.
eibneti Professor: Reinaldo T
42
INTRODUÇÃO •
•
COBOL É SIGLA DE “COMMOM BUSINESS ORIENTED LANGUAGE E SIGNIFICA LINGUAGEM PROJETADA PARA APLICAÇÕES COMERCIAIS”. OBJETICO DO CURSO: TREINAR PESSOAS COM ALGUM CONHECIMENTO DE LÓGICA DE PROGRAMAÇÃO E MAINFRAME, PARTE FISICA E LOGICA. eibneti Professor: Reinaldo T
43
ESTRUTURA DO COBOL •
•
•
•
•
O CODIGO FONTE POSSUI QUATRO DIVISÕES QUE DEVEM SER ESCRITAS E CODIFICADAS NESTA ORDEM: IDENTIFICATION DIVISION ENVIRONMENT DIVISION DATA DIVISION PROCEDURE DIVISION.
eibneti Professor: Reinaldo T
44
DIVISÕES DO COBOL •
•
•
•
•
•
Todo programa COBOL consiste, obrigatoriamente, em 4 (quatro) divisões separadas. Cada divisão é escrita em inglês, para diminuir o esforço e facilitar a compreensão do programa por pessoas alheias ao processamento de dados. Cada uma das 4 (quatro) divisões tem funções específicas. A IDENTIFICATION DIVISION serve para identificar o programa no computador e também proporciona informações documentais que são de suma importância para pessoas que não entendem nada de processamento e queiram analisar superficialmente o programa. A ENVIRONMENT DIVISION descreve o computador e os periféricos que serão utilizados pelo programa. A DATA DIVISION descreve os arquivos de entrada e saída que serão processados pelo programa, especificando seus formatos. Também define as áreas de trabalho e constantes necessárias para o processamento dos dados. A PROCEDURE DIVISION contém o código que irá manipular os dados descritos na DATA DIVISION. É nesta divisão que o desenvolvedor descreverá o algoritmo do programa. Obervação: Esta divisão possui uma estrutura hierárquica e consiste de seções, parágrafos, sentenças e comandos.
•
eibneti Professor: Reinaldo T
45
REGRAS PARA ESCREVER UM PROGRAMA COBOL •
•
•
•
•
•
O COBOL POSSUI REGRAS RIGIDAS A SEREM SEGUIDAS: COLUNA DE 1 A 6: ÁREA DE NUMERAÇÃO SEQUENCIAL COLUNA 7: ÁREA DE INDICAÇÃO (COMENTÁRIOS “*”) COLUNAS DE 8 A 11: ÁREA “A” COLUNAS DE 12 A 72: ÁREA “B” COLUNAS DE 73 A 80: A PARTI DA SEGUNDA VERSÃO DO PROGRAMA, SERÁ PREENCHIDO PELO COMPILADOR COM O NÚMERO DA VERSÃO.
eibneti Professor: Reinaldo T
46
DESCRIÇÕES DA ÁREAS • •
• •
• • • •
• •
COLUNA 7: (*) LINHA DE COMENTARIOS COLUNA 8 A 72: INSTRUÇÕES DO COBOL INICIANDO NA COLUNA 8: Margem A Cabeçalhos de divisão Cabeçalhos de seção Cabeçalhos de parágrafos Cabeçalhos de entrada nas descrições de arquivos Cabeçalhos de entrada na descrição dos registros INICIANDO NA COLUNA12 Margem B - codificação COBOL - comandos eibneti Professor: Reinaldo T
47
PALAVRAS RESERVADAS COBOL •
Uma palavra reservada é uma palavra com siginificador prefixo, ou seja, que tem um significado próprio para o compilador.
eibneti Professor: Reinaldo T
48
REGRAS PARA FORMAÇÃO DE NOMES •
•
•
•
1. Os nomes podem ser formados pelos caracteres 0 a 9, A aZ e hífen. Não podem ser indicados nem finalizados com hífen. 2. O tamanho máximo dos nomes é da 30 caracteres, eles não podem conter espaços. 3. Com execeção dos nomes de procedimento, deverá existir pelo menos uma letra. 4. Os nomes externos ter no máximo 8 caracter. eibneti Professor: Reinaldo T
49
RESUMO •
•
•
•
COBOL é a sigla de “Commom Business Oriented Languaged”, “Linguagem projetada para aplicações comerciais”. O código fonte possui quatro divisões que devem ser escritas, codificadas nesta ordem: IDENTIFICANTION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION E PROCEDURE DIVISION. Todo programa escrito na linguagem COBOL possui algumas regras rígidas a serem seguidas, assim como uma redação, que possui início, meio e fim. Uma palavra reservada com significado prefixo, isto é, que tem um significado próprio para o compilador. eibneti Professor: Reinaldo T
50
ESTRUTURA DO COBOL (DIVISÕES) IDENTIFICAN DIVISION ENVIRONMENT DIVISION CONFIGURATION SECTION INPUT-OUTPUT DATA DIVISION FILE SECTION WORKING-STORAGE SECTION LINKAGE SECTION SCREEN SECTION REPORT SECTION PROCEDURE DIVISION SECTION PARAGRAFOS eibneti Professor: Reinaldo T
51
IDENTIFICADION DIVISION IDENTIFICATION DIVISION. PROGRAM-ID. “NOME DO PROGRAMA” COM TAMANHO DE NO MAXIMO 8 POSIÇÕES ALFANÚMERICAS. AUTHOR. “NOME DO AUTOR DO PROGRMA”. INSTALALLATION. “NOME DA EMPRESA OU LOCAL DE GERAÇÃO DO PROGRAMA”. DATE-WRITTEN. “Data em que o propgrama foi compílado”. SECURITY. “COMENTARIOS SOBRE A SEGURANÇA DO PROGRMA E OU SEUS ARQUIVOS”. REMARKS. “COMENTARIOS ADICIONAIS SOBRE O PROGRMA”. ATENÇÃO: O NOME DO PROGRAMA RECOMENDA QUE SEJA IGUAL DO NOME DO MEMBRO DO PARTICIONADO. OBS: OS QUE ESTÃO DE VERMELHO SÃO OBRIGATORIOS. OS OUTROS SÃO OPCIONAIS.
52
EXEMPLO
eibneti Professor: Reinaldo T
53
EXERCICIO 1 CRIE UM MEMBRO NO ARQUIVO PARTICIONADO, SALVE COM O NOME PROGAULA. ESCREVA O PROGRAMA FONTE IGUAL DO EXEMPLO APRESENTADO. ALTERADO O NOME DO AUTHOR E PROGRAMADOR. ATENÇÃO: OBSERVANDO AS REGRAS.
eibneti Professor: Reinaldo T
54
ENVIROMENT DIVISON Contém instruções ou comandos que descrevem o ambiente físico em que o programa é executado. Faz a interface dos arquivos que o programa usará com os arquivos físicos.
eibneti Professor: Reinaldo T
55
ESTRUTURA ENVIRONMENT DIVISION ENVIRONMENT DIVISION. CONFIGURANTION SECTION. SOURCE-COMPUTER. OBJECT-COMPUTER. SPECIAL-NAMES. INPUT-OUTPUT SECTION. FILE-CONTROL. I-O CONTROL. eibneti Professor: Reinaldo T
56
ENVIRONMENT DIVISION ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. No parâmetro SPECIAL-NAMES, normalmente se define a conversão da notação de valores monetários com casas decimais do padrão americano para o brasileiro. Outros parametros são opcionais. Exemplo: Padrão americano US$ 123,456,798.00 é convertido para R$ 123.456.789,00 eibneti Professor: Reinaldo T
57
ENVIRONMENT DIVISION INPUT-OUTPUT SECTION. Esta seção destina-se a configuração do ambiente de leitura e gravação, ela possui duas partes: FILE-CONTROL E I-OCONTROL A primeira destina-se a especificações dos arquivos que o programa irá acessar.
eibneti Professor: Reinaldo T
58
ENVIRONEMNT DIVISON INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT ARQENT01 ASSIGN ARQENT01 ORGANIZATION IS SEQUENTIAL. SELECT SAIDA01 ASSIGN SAIDA01 ORGANIZATION IS SEQUENTIAL. Define os arquivos a serem utilizados na programação, sua organização, meio de acesso, chaves primarias e/ou secundarias. eibneti Professor: Reinaldo T
59
EXEMPLO
eibneti Professor: Reinaldo T
60
RESUMO A ENVIRONMENT DIVISION: DESCREVER O AMBIENTE FÍSICO. Arquivos de entrada e saida CONFIGURANTION SECTION. SPECIAL-NAMES. DECIMA-POINT IS COMMA. DEFINE PADRÃO MONETÁRIO. INPUT-OUTPUT SECTION: CONFIGURAÇÃO DO AMBIENTE DE LEITURA E GRAVAÇÃO. eibneti Professor: Reinaldo T
61
Exercicio 2 Escreva no programa fonte criado no exercicio 1, A ENVIRONMENT DIVISION, conforme a apresentação.
eibneti Professor: Reinaldo T
62
COMANDO PERFORM COMANDO USADO PARA ESTRUTURA OS PROCEDIMENTOS DO PROGRAMA.
eibneti Professor: Reinaldo T
63
PERFORM É FORMADO POR PARAGRAFOS. OBS: TODO PARAGRAFO TEM QUE SER FINALIZADO COMO COMANDO EXIT.
eibneti Professor: Reinaldo T
64
PERFORM COM OPÇÃO UNTIL. NO FORMATO COM A OPÇÃO UNTIL. A PROCEDURE REFERIDA É EXECUTADA ATÉ QUE A CONDIÇÃO ESPECIFICADA PELA OPÇÃO UNTIL SEJA VERDADEIRA. O CONTROLE ENTÃO E PASSADO PARA A PRÓXIMA INSTRUÇÃO SEGUINTE AO PERFORM. SE A CONDIÇÃO FOR VERDADEIRA NO MOMENTO EM QUE O PERFORM FOR INICIADO, AS PROCEDURES ESPECIFICADAS NÃO SERÃO EXECUTADAS.
eibneti Professor: Reinaldo T
65
COMANDO IF E ELSE. COMANDO DE DESIÇÃO INSTRUÇÃO IF THEN ELSE. SINAIS DE COMPARAÇÃO LOGICAS: > GREATER THAN < LESS THAN = EQUAL TO
eibneti Professor: Reinaldo T
66
COMANDO ACCEPT CAPTURA DADOS DO SISTEMA : DATE, DAY E TIME FORMATO E OPÇÕES: DATE: TEM IMPLICITO PIC 9(06) FORMADO YYMMDD – DATA GREGORIANA DAY: TEM IMPLICITO PIC 9(05) FORMADO YYDDD – DATA JULIANA TIME: TEM IMPLICITO PIC 9(08) FORMADO HHMMSSCC – HORA, MINUTO, SEGUNDO E CENTÉSIMOS DE SEGUNDO
eibneti Professor: Reinaldo T
67
COMANDOS DISPLAY. ENVIA DADOS PARA UM DISPOSITIVO
eibneti Professor: Reinaldo T
68
COMANDO MOVE COPIA UM DADO EM CAMPO DE MEMÓRIA PARA OUTRO.
eibneti Professor: Reinaldo T
69
EXERCICIO DE COMANDOS •
•
•
DESENVOLVA UM PROGRAMA COBOL. ESSE PROGRAMA TEM QUE CAPTURA OS DADOS DO SISTEMA E FAZER UM DISPLAY DE CADA OPÇÃO. (DATE, DAY E TIME). E VIRIFICAR A DATA. SE É INFERIOR A DATA DA APRESENTAÇÃO. SE SIM, MOSTRA O SEGUINTE DISPLAY ‘DATA INFERIOR DO SISTEMA’. COMO ESTÁ NAS APRESENTÇÕES. COPIE O PROGRMA EXEMPLO01 DO DATA SET SUPORTE.CURSO.REXX. eibneti Professor: Reinaldo T
70
Estudar •
https://www.youtube.com/watch?v=K7FERaFIVH4&feature=related
eibneti Professor: Reinaldo T
71
COMANDO ADD COMANDO PARA ADICIONAR
eibneti Professor: Reinaldo T
72
LEITURA DE ARQUIVO SEQUENCIAL. A ARQUIVO SEQUENCIAL É QUE OS REGISTROS SERÃO ARMAZENADOS UM APÓS O OUTRO, OU SEJA, ASSIM QUE TERMINA UM REGISTRO TERÁ INICIO., POR EXEMPLO
eibneti Professor: Reinaldo T
73
DEFINIÇÃO DE ARQUIVO SEQUENCIAL PRIMEIRA PARTE: É NA INPUT-OUTPUT SECTION NA FILE-CONTROL.
eibneti Professor: Reinaldo T
74
SEGUNDO PASSO PARA DECLARAÇÃO DO ARQUIVO SEQUENCIAL. É NA DATA DIVISION NA FILE SECTION. É OPCINAL A DECLARAÇÃO DO CAMPOS. A DECLARAÇÃO DOS CAMPOS TEM QUE SER IGUAL O LAYOUT DO ARQUIVO.
eibneti Professor: Reinaldo T
75
TERCEIRO PASSO: TEM QUE QUE ABRIR O ARQUIVO. OPEN INPUT. OPEN: COMANDO IRÁ DISPONIBILIZAR UM CANAL COM O ARQUIVO PARA QUE O PROGRAMA FAÇA AS OPERAÇÕES NECESSARIAS. INDICA QUE O PROGRAMA PODERÁ APENAS FAZER LEITURAS NO ARQUIVO, NÃO PODENDO FAZER NENHUM GRAVAÇÃO. PARA TANTO O ARQUIVO DEVERÁ TER SIDO CRIADO ANTERIORMENTE.
eibneti Professor: Reinaldo T
76
LEITURA DO ARQUIVO SEQUENCIAL COMANDO READ
eibneti Professor: Reinaldo T
77
FECHANDO UM ARQUIVO SEQUENCIAL. COMANDO CLOSE. OBS: TODO ARQUIVO TEM QUE ABRIR E FECHAR.
eibneti Professor: Reinaldo T
78
GRAVAÇÃO DE ARQUIVO SEQUENCIAL: EXECUTA OS PASSOS 1,2 E 3 DO ARQUIVO DE ENTRADA(INPUT) ABRIR O ARQUIVO: OPEN OUTPUT OUTPUT: INDICA QUE O PROGRAMA PODERÁ APENAS GRAVAR NO ARQUIVO
eibneti Professor: Reinaldo T
79
GRAVAÇÃO DE ARQUIVO SEQUENCIAL: EXECUTA OS PASSOS 1,2 E 3 DO ARQUIVO DE ENTRADA(INPUT)
eibneti Professor: Reinaldo T
80
GRAVANDO REGISTRO NO ARQUIVO DE SAIDA (OUTPUT) COMANDO WRITE
eibneti Professor: Reinaldo T
81
EXERCICIO DE GRAVAÇÃO LEITURA E GRAVAÇÃO •
•
•
•
• • •
•
COPIAR O PROGRAMA EXEMPLO2 DO DATA SET SUPORTE.CURSO REXX. FAZER AS MODIFICAÇÕES NECESSÁRAIS.NOME DO PROGRAMADOR E ETC. FAZER A DECLARAÇÃO DOS CAMPOS CONFORME O LAYOUT, QUE PROFESSOR PASSOU. FAZER DISPLAY DO TOTAL DE REGISTROS LIDOS. NO FINAL DO PROCESSAMNETO. GRAVAR O HEADER NO ARQUIVO DE SAIDA CONFORME LAYOUT DO PROFESSOR. GRAVAR O DATALHE MOTIFICANDO O TIPO DE REGISTRO PARA 01. GRAVAR O TRAILER DO ARQUIVO CONFORME O LAYOUT. COMPILAR E EXECUTAR. INFORMAÇÕES DE COMPILAÇÃO E EXECUÇÃO COM PROFESSOR. OBS: SEGUIR AS ORIENTAÇÕES QUE ESTÃO NO QUADRO eibneti Professor: Reinaldo T
82
COMANDOS ARITMÉTICOS •
•
•
•
+ ADD - SUBTRACT * MULTIPLY / DIVIDE
eibneti Professor: Reinaldo T
83
COMANDO COMPUTE •
•
•
•
Se uma instrução aritmética for suficiente, use-a; se for necessário mais de uma, use o comando COMPUTE A instrução COMPUTE usa símbolos em vez de comandos aritméticos. A principal vantagem do comando COMPUTE é que pode realizar várias operações aritméticas com uma única instrução, conforme exemplos abaixo: COMPUTE VENDAS-DIARIAS = QUANTIDADE * VALOR-UNITARIO / 5
eibneti Professor: Reinaldo T
84
EXEMPLO
eibneti Professor: Reinaldo T
85
eibneti Professor: Reinaldo T
86
EXERCICIO •
•
ADICIONAR NO EXERCICIO ANTERIOR, A MEDIA DO SALARIOS. USANDO OS COMANDOS APRESENTADOS. FAZENDO UM DISPLAY DA MEDIA.
eibneti Professor: Reinaldo T
87
COMANDO EVALUATE: A instrução EVALUATE, à semelhança do verbo IF, permite alterar o fluxo do programa em função dos seus dados. Ao encontrar o EVALUATE, cada uma das suas condições será avaliada até se encontrar uma que seja verdadeira. Seguidamente, o código associado a essa condição é executado e, posteriormente, é executada a instrução seguinte ao EVALUATE. LEMBRETE: A INSTRUÇÃO EVALUATE PERMITE CODIFICAR A ESTRUTURA CASE DA APROGRAMAÇÃO ESTRUTURADA.
eibneti Professor: Reinaldo T
88
COMO O COMANDO QUE DECLAREI PARA SER EXECUTADO NO EVALUATE FOI PERFORM. SEGUE AS DECLARAÇÕES DO PARAGRAFOS.
eibneti Professor: Reinaldo T
89
EXERCICIO •
USANDO O COMANDO EVALUATE: LER TODOS REGISTROS, COMPARA O CAMPO DA FUNÇÃO E FAZER UM DISPLAY DA FUNÇÃO. USAR O PROGRAMA ATUAL.
eibneti Professor: Reinaldo T
90
COMANDO FILE STATUS •
•
•
O FILE STATUS permite ao usuário monitorar a execução de operações de entrada e saída (I/O) requisitadas para os arquivos de um programa. Após cada operação de I/O, o sistema move um valor para a STATUS KEY (campo alfanumérico, com 2 caracteres definidos na WORKING-STORAGE SECTION e especificado na ENVIRONMENT DIVISION, através do SELECT) que acusa o sucesso ou o insucesso da operação. Qualquer valor movido para a STATUS KEY diferente de zeros, revela que a execução não foi bem sucedida.
eibneti Professor: Reinaldo T
91
EXEMPLOS DE OPERAÇÃO DE I/O COM FILE STATUS •
OPEN
•
START
•
WRITE
•
READ
•
REWRITE
•
CLOSE
eibneti Professor: Reinaldo T
92
EXEMPLO: PRIMEIRO PASSO
eibneti Professor: Reinaldo T
93
EXEMPLO: SEGUNDO PASSO
eibneti Professor: Reinaldo T
94
EXEMPLO: TERCEIRO PASSO OBS: ONDE ESTIVER UMA OPERAÇÃO COM ARQUIVO, TEM QUE TER A DECLARAÇÃO, PARA VERIFICAR SER A OPERAÇÃO FOI FEITA COM SUCESSO.
eibneti Professor: Reinaldo T
95
CLAUSULA OCCURS •
UMA ÁREA DE TABELA PODE SER DEFINIDA WORKING-STORAGE SECTION, UTILIZANDO OCCURS.
eibneti
96
EXEMPLO
eibneti
97
eibneti
98
RESULTADO
eibneti
99