Grande Porte - COBOL Level 1 - Versão 2.3.5
Click here to load reader
-
Upload
jeison-barros -
Category
Documents
-
view
127 -
download
47
description
Transcript of Grande Porte - COBOL Level 1 - Versão 2.3.5
-
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
COBOL Level 1
-
Verso 2.3.5 PDF liberado em 26/04/2015
Fique atento para novas verses em nosso site.
Sobre o autor
Prof. Nelson Goncalves de Oliveira
Cientista da Computaco pelo IMES-SCS,
Especialista em Telecomunicaces pela
FAAP-SP, mestrando em cincia da
computaco pela UFAbc-sp.
Iniciou a carreira como desenvolvedor de
software em 1987, especializando-se em
COBOL para Mainframes IBM.
Professor universitrio Desde 2000,
leciona diversas disciplinas nos cursos de
Cincia da Computaco e Informtica.
fundou a Grande Porte em 2008 com o
objetivo de difundir essa experincia para
o mercado.
O COBOL tem aberto as portas de diversas empresas para os nossos
alunos e, mesmo aps 55 anos de
existncia, continua firme e forte
suportando globalmente o comrcio
mundial.
,
, ,
,
,
-
Parte
A Almirante Grace Murray Hopper (1906 1992) foiuma das primeiras programadoras do sistema Haward Mark Ie foi a criadora do primeiro compilador para uma linguagem deprogramao de computadores. Criou a Linguagem de
programao FLOW-MATIC, que serviu como base para acriao da linguagem COBOL, participando ativamente davalidao da primeira verso desta linguagem.
-
Verso 2.3.5
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
3
1
Antes de iniciarmos, vamos conversar sobre os tpicos apresentados na
capa desta parte. Isso importante para que seu instrutor e seus colegas saibam como est seu conhecimento sobre o assunto e se voc precisa ou pode fornecer ajuda aos colegas e instrutor.
O que voc j sabe ?
O que voc no sabe ?
Porque importante conhecer estes tpicos ?
Quais so os seus temores ?
O que voc considera difcil ?
Depois de falar sobre o assunto com seus colegas e instrutor, escreva,
desenhe, rabisque, diga algo sobre o que voc vai fazer para dominar esses tpicos. Comprometa-se!
Trocando Ideias agora que voc fala !!
Preparation
Reflexo aqui que voc se compromete !!
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
4
A XPTO consultoria em desenvolvimento de software uma empresa
especializada no desenvolvimento de solues informatizadas para seus clientes.
Suas solues atendem as mais diversas plataformas de Hardware e Sistemas
Operacionais, tais como Mainframe (Z/OS), AS/400 (OS/400), RISC (UNIX), PC
(Windows/Linux), Tablets (Android/iOS), bem como aplicaes para a Internet.
Suas solues de software so tambm desenvolvidas nas mais diversas
linguagens de programao, tais como COBOL, Java, C#, C/C++, HTML, ASP.NET,
etc.
Voc o mais novo estagirio da XPTO e, portanto passar por esse programa
de treinamento em COBOL, junto com o TSO e a linguagem JCL, utilizados na
plataforma mainframe. Todo o conhecimento de lgica de programao que voc
possui ser usado neste treinamento.
Chama-se plataforma Mainframe ao computador de Grande Porte da IBM para
processamento de transaes. utilizado por grandes empresas e est vivendo uma
fase de crescimento, apesar da dificuldade de se encontrar mo de obra qualificada. A
linguagem de programao mais utilizada nesta plataforma o COBOL. Criada no fim
da dcada de 1950 a linguagem mais importante nesta plataforma, de fcil
compreenso por ser parecida com o ingls corrente. Este ser o foco de seu
treinamento.
Ento vamos l, bons estudos e tenham muita dedicao.
Presentation
Consultoriaem
Desenvolvimento
deSoftware
Histria Conheca a xpto !!,
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
5
1
Origens
O COBOL foi criado em 1959 pelo CODASYL (Conference on Data Systems
Language), um dos trs comits propostos numa reunio no Pentgono em Maio de
1959, organizado por Charles Phillips do Departamento de Defesa dos Estados
Unidos. O CODASYL foi formado para recomendar as diretrizes de uma linguagem de
programao para negcios. Foi constitudo por membros representantes de seis
fabricantes de computadores e trs rgos governamentais, a saber:
Burroughs Corporation
IBM
Minneapolis-Honeywell (Honeywell Labs)
RCA
Sperry Rand
Sylvania Electric Products
Fora Area dos Estados Unidos
David Taylor Model Basin
Agncia Nacional de Padres (National Bureau of Standards ou NBS).
Este comit foi presidido por um membro do NBS. Um comit de Mdio Prazo e
outro de Longo Prazo foram tambm propostos na reunio do Pentgono. Entretanto,
embora tenha sido formado, o Comit de Mdio Prazo nunca chegou a funcionar; e o
Comit de Longo Prazo nem chegou a ser formado. Por fim, um subcomit do Comit
de Curto Prazo desenvolveu as especificaes da linguagem COBOL. Este subcomit
era formado por seis pessoas:
William Selden e Gertrude Tierney da IBM
Howard Bromberg e Howard Discount da RCA
Vernon Reeves e Jean E. Sammet da Sylvania Electric Products
Este subcomit completou as especificaes para o COBOL no fim do ano de
1959. Elas foram inspiradas em grande parte pela linguagem FLOW-MATIC inventada
por Grace Murray Hopper, e pela linguagem COMTRAN da IBM inventada por Bob
Bemer.
As especificaes foram aprovadas pelo CODASYL. A partir da foram
aprovadas pelo Comit Executivo em Janeiro de 1960, e enviadas grfica do
governo, que as editou e imprimiu com o nome de COBOL 60. O COBOL foi
desenvolvido num perodo de seis meses, e continua ainda em uso depois de mais de
50 anos.
TeoriaIntroduo linguagem cobol
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
6
Grace Murray Hopper
Grace Hopper foi uma analista de sistemas da marinha americana nas
dcadas de 1940 e 1950, criadora da linguagem de programao FLOW-MATIC, hoje
extinta. Como sua linguagem serviu como base para a criao do COBOL, atribui-se
ela o ttulo de Me do COBOL. (equivocadamente) de autoria de Hopper a
inveno da palavra "bug", usada para designar uma falha em um cdigo-fonte, devido
a uma traa que ela encontrou esmagada em um rel do computador UNIVAC MARK
II.
FLOW-MATIC
A linguagem FLOW-MATIC, originalmente conhecida como B-0 (Business
Language version 0), foi a primeira linguagem de processamento de dados parecida
com o idioma ingls. Ela foi desenvolvida para o UNIVAC I da Remington Rand por
Grace M. Hopper.
Grace havia observado que os usurios da rea de negcios no se sentiam
confortveis com a notao matemtica exigida pelo FORTRAN, que foi a primeira
linguagem de programao de alto nvel, significando FORmula TRANslator (Tradutor
de Frmulas). No final de 1953 ela props que os problemas de processamento de
dados deveriam ser expressos usando palavras-chave em ingls, mas a gesto da
Rand considerava a ideia invivel. No incio de 1955, ela e sua equipe escreveram
uma especificao para uma linguagem de programao com essas caractersticas e
implementaram um prottipo. O compilador do FLOW-MATIC tornou-se publicamente
disponvel no incio de 1958 e foi substancialmente completado em 1959.
O FLOW-MATIC foi a primeira linguagem de programao a expressar suas
operaes usando comandos em ingls, foi o primeiro sistema que separou a
descrio dos dados das operaes. Sua linguagem de definio de dados, diferente
Almirante Grace Murray Hopper 1906 1992
1 bug (inseto = erro) de computador
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
7
1dos comandos de execuo, no eram em ingls, em vez disso, as estruturas de
dados eram definidas preenchendo formulrios pr-impressos.
O FLOW-MATIC foi a maior influncia no projeto do COBOL. Muitos de seus
elementos foram incorporados ao COBOL, tais como:
Definio dos arquivos em detalhes, separando em arquivos de entrada
(INPUT) e sada (OUTPUT).
Qualificao dos nomes de dados (clusulas IN e OF)
Clusulas IF END OF DATA (AT END) na operao de leitura (READ) de
arquivos
Constante figurativa ZERO (originalmente ZZZ...ZZZ, onde a quantidade de Z's
indicava a preciso)
Dividir o programa em sees, separando diferentes partes dos programas. O
FLOW-MATIC inclua as sees COMPUTER (ENVIRONMENT DIVISION),
DIRECTORY (DATA DIVISION) e COMPILER (PROCEDURE DIVISION).
CONTRAM
A linguagen COMTRAN (COMmercial TRANslator) uma antiga linguagem de
programao desenvolvida na IBM. Seu objetivo era ser uma linguagem de
programao comercial equivalente a linguagem de programao cienttica FORTRAN
(FORmula TRANslator). Ela serviu como impulsionadora da linguagem COBOL. foi
desenvolvida em 1957 por Bob Bemer (Robert William Bemer 1920 2004), foi
influenciada pelo FLOW-MATC e influenciou o COBOL. O CONTRAM foi a primeira
linguagem de programao a usar a clusula PIC.
Muitos elementos da COMTRAN foram incorporados ao COBOL, tais como:
Clusula PIC, define o tamanho dos dados e seu tipo
Diviso do cdigo em pargrafos com nomes, sendo possvel pular (GO TO)
para um nome de pargrafo
Clusula AT END nas operaes de arquivos de entrada
Constante figurativa HIGH-VALUE
Retorno ao sistema operacional de um valor numrico quando o programa
encerra. (RETURN-CODE)
COBOL II
O COBOL uma linguagem de alto nvel, isto , semelhante a linguagem
humana. um acrnimo e significa COmmon Business Oriented Language
(Linguagem Comum Orientada aos Negcios). Como seu nome indica, o objetivo
desta linguagem permitir o desenvolvimento de aplicaes comerciais para pessoas
sem conhecimento profundo de computadores. Por isso a linguagem COBOL usa
frases normais da lngua inglesa, e a estrutura de um programa COBOL se assemelha
a um texto com divises, sees, pargrafos e frases em ingls. Uma das
caractersticas importantes do COBOL sua auto documentao: um programador
pode entender um programa COBOL pela simples leitura de sua codificao.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
8
O COBOL II foi liberado pela IBM no inicio dos anos 90 e a atual verso
utilizada pelas empresas usurias de computadores de Grande Porte. uma
linguagem poderosa e flexvel para as aplicaes comerciais atuais e permite a
codificao de programas especificados pelas metodologias: Programao
Estruturada, TOP-DOWN e MODULAR.
No COBOL II foram includos comandos para COPY book, PERFORM IN-LINE,
DELIMITADORES DE ESCOPO e os comandos EVALUATE e INITIALIZE entre outros.
O mdulo objeto gerado ficou mais potente, podendo utilizar todas as
facilidades dos sistemas operacionais modernos. Pode-se rodar um programa acima
da linha dos 16 MBytes e com 31 bits de endereamento de memria tornando mais
fcil o desenvolvimento de grandes aplicaes. O compilador foi totalmente reescrito
tendo sido eliminados comandos e instrues obsoletas das verses anteriores,
tratando-se de um compilador novo, o COBOL II apresenta algumas melhorias em
relao ao antigo permitindo uso mais eficiente dos recursos, como maior facilidade de
depurao BATCH e novo formato das listagens de compilao.
Grace Hopper em 1960 com o manual da
1 verso do COBOL
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
9
1
a modalidade de processamento onde uma coleo de registros de um ou
mais arquivos de entrada processada e um ou mais arquivos de sada so gravados.
No h interao com o usurio, uma vez iniciado um programa batch, ele s termina
quando todos os dados de entrada foram processados ou quando acontecer um erro
de processamento.
Os algoritmos desenvolvidos para esta modalidade de processamento tm o
seguinte aspecto:
algoritmo batch
execute rotina-inicializar
execute rotina-processar at fim dos arquivos de entrada
execute rotina-termino
fim-algoritmo
Na rotina-inicializar, realizamos as seguintes tarefas:
Inicializao das variveis (contadores e acumuladores)
Abertura dos arquivos de entrada e sada
Leitura do primeiro registro dos arquivos de entrada
Na rotina-processar, realizamos as seguintes tarefas:
Seleo de registros para o processamento, pelos operadores
relacionais (=, , >=,
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
10
O processamento em lotes uma atividade corriqueira, que realizamos toda a
vez que precisamos lidar com um lote de documentos, fichas de inscrio, provas para
corrigir, contas para conferir, etc.
rotina-inicializar Comeamos organizando a mesa onde vamos trabalhar,
zerando a calculadora, abrindo o lote de documentos e pegando o primeiro documento
da pilha.
rotina-processar Enquanto houver documentos na pilha, para cada
documento vamos processando seus dados, contabilizando ocorrncias, acumulando
valores e por ltimo pegamos o prximo documento da pilha.
rotina-termino No final, aliviados pelo trmino do trabalho, fechamos o lote,
exibimos o resultado do processamento e avisamos que acabou.
Exemplo de processamento em lote (batch)
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
11
1
Objetivo do Programa
Calcular o valor a receber de vrios funcionrios, com base na quantidade de
horas trabalhadas, com salrio fixo de R$ 25,00 por hora.
Macro-Fluxo
Observao
A quantidade de horas trabalhadas pelos funcionrios est gravada em uma
SYSIN. O programa EEXXNN01 l todas as horas gravadas na SYSIN, e para cada
uma delas, calcula o salrio e o exibe na SYSOUT.
Alm disso, tambm deve ser exibido o nmero de salrios que foram
calculados e a soma de todos os salrios.
A SYSIN (SYSTEM INPUT) lida com o comando ACCEPT, que carrega na
varivel informada o dado lido. Exemplo:
ACCEPT QTDHSTRAB FROM SYSIN
A SYSOUT (SYSTEM OUTPUT) gravada com o comando DISPLAY, que
exibe constantes e valores de variveis informadas. Exemplo:
DISPLAY "TOTAL DE FUNCIONARIOS LIDOS.: " CONTFUNC
EXEMPLO PROCESSAMENTO BATCH
SYSIN
SYSOUT
EEXXNN01
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
12
JOB de Execuo
Observe a SYSIN, onde as horas trabalhadas esto informadas. O ltimo valor
0000 um indicador de que no h mais horas para calcular o salrio. comum
utilizar um valor previamente combinado para indicar o trmino dos dados da SYSIN,
essa tcnica conhecida como SENTINELA. 11234567892123456789312345678941234567895123456789612345678971234567898
12345678901234567890123456789012345678901234567890123456789012345678901234567890
//GPXXNNE1 JOB 'SEUNOME',MSGCLASS=X,CLASS=C,NOTIFY=GPXXNN,TIME=(0,20)
//*******************************************************************
//JOBLIB DD DSN=GP.GERAL.LOADLIB,DISP=SHR
//STEP1 EXEC PGM=EEXXNN01
//SYSIN DD *
0150
0085
0180
0025
0090
0125
0070
0000
//*
Programa COBOL
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
*--------------------------------------------------------------*
* EXEMPLO 01 - COBOL LEVEL 1 *
*--------------------------------------------------------------*
* OBJETIVO : CALCULAR O VALOR A RECEBER DE VARIOS FUNCIONARIOS *
* COM BASE NA QUANTIDADE DE HORAS TRABALHADAS, COM *
* SALARIO FIXO DE R$ 25,00 POR HORA. *
*--------------------------------------------------------------*
IDENTIFICATION DIVISION.
*--------------------------------------------------------------*
PROGRAM-ID. EEXXNN01.
AUTHOR. GRACE.
*--------------------------------------------------------------*
ENVIRONMENT DIVISION.
*--------------------------------------------------------------*
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
*--------------------------------------------------------------*
DATA DIVISION.
*--------------------------------------------------------------*
FILE SECTION.
WORKING-STORAGE SECTION.
77 QTDHRSTRAB PIC 9(04).
77 CONTFUNC PIC 9(05).
77 SOMASAL PIC 9(12)V99.
77 SALARIO PIC 9(06)V99.
Sentinela.
e
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
13
1----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
*--------------------------------------------------------------*
PROCEDURE DIVISION.
*--------------------------------------------------------------*
0000-EEXXNN01.
PERFORM 1000-INICIALIZAR
PERFORM 2000-PROCESSAR
UNTIL QTDHRSTRAB = 0
PERFORM 3000-TERMINO
STOP RUN
.
1000-INICIALIZAR.
MOVE 0 TO CONTFUNC
MOVE 0 TO SOMASAL
PERFORM 1500-LER-SYSIN
.
1500-LER-SYSIN.
ACCEPT QTDHRSTRAB FROM SYSIN
IF QTDHRSTRAB NOT = 0
COMPUTE CONTFUNC = CONTFUNC + 1
END-IF
.
2000-PROCESSAR.
COMPUTE SALARIO = QTDHRSTRAB * 25
COMPUTE SOMASAL = SOMASAL + SALARIO
DISPLAY "*********************************"
DISPLAY "FUNCIONARIO........: " CONTFUNC
DISPLAY "QTDE. HORAS TRAB...: " QTDHRSTRAB
DISPLAY "SALARIO............: " SALARIO
DISPLAY "*********************************"
PERFORM 1500-LER-SYSIN
.
3000-TERMINO.
DISPLAY "*-------------------------------------------------*"
DISPLAY " TOTAL DE FUNCIONARIOS LIDOS.: " CONTFUNC
DISPLAY "*-------------------------------------------------*"
DISPLAY " SOMA DOS SALARIOS A PAGAR...: " SOMASAL
DISPLAY "*-------------------------------------------------*"
DISPLAY "* TERMINO NORMAL DO EEXXNN01 *"
DISPLAY "*-------------------------------------------------*"
.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
14
ACCEPT da SYSIN O COBOL foi desenvolvido originalmente para processar arquivos de dados e
ainda usado com esta finalidade. Entretanto, em muitas ocasies existe a
necessidade de interao com o operador do Mainframe. Usamos o comando (verbo)
ACCEPT para receber os dados de entrada por meio de um carto DD do JCL (tratado
no programa COBOL como SYSIN). Exemplo:
12345678911234567892123456789312345678941234567895123456789612345678971234567898
12345678901234567890123456789012345678901234567890123456789012345678901234567890
//GPXXNNE1 JOB SEUNOME,MSGCLASS=X,CLASS=C,NOTIFY=GPXXNN,TIME=(0,20)
//******************************************************************
//JOBLIB DD DSN=GP.GERAL.LOADLIB,DISP=SHR
//STEP1 EXEC PGM=EEXXNN01
//SYSIN DD *
0150
0085
0180
0025
0090
0125
0070
0000
//*
Abaixo temos um exemplo de ACCEPT da SYSIN:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
ACCEPT QTDHRSTRAB FROM SYSIN Quando a opo FROM omitida o padro FROM SYSIN assumido. Cada vez que o programa passa pela instruo ACCEPT, uma linha da SYSIN
do JCL carregada na varivel QTDHRSTRAB. necessrio colocar no programa COBOL uma condio para parar de ler a
SYSIN. Observe no JCL acima que o ltimo nmero tudo zero. No programa a SYSIN ser lida at que (UNTIL) se encontre o valor zero (0).
Essa tcnica chamada de SENTINELA, pois temos um valor previamente
combinado que indica o trmino da SYSIN. Se isso no for feito, o ACCEPT ler os nmeros da SYSIN at acabar e depois repetir a leitura do ltimo nmero vria vezes, at que o programa pare por TIME OUT, ou seja, acabar o tempo reservado para ele executar.
Teoria Comandos bsicos
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
15
1DISPLAY
Exibe constantes e/ou variveis num dispositivo de sada. Normalmente o
dispositivo cujo DDNAME SYSOUT. Exemplo:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
.......999-ERRO.
...........DISPLAY "*------------------------------------------*"
...........DISPLAY " MENSAGEM.....: " WS-MSG
...........DISPLAY " FILE STATUS..: " WS-FS
...........DISPLAY "*------------------------------------------*"
...........DISPLAY " TERMINOxANORMALxDOxPROGRAMAx xxxxxxx"
...........DISPLAY "*------------------------------------------*"
...........STOP RUN
............
COMPUTE Realiza operaes aritmticas mais sofisticadas, utilizando o operador de
atribuio = (sinal de igualdade) e uma expresso aritmtica. Exemplo: ----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
COMPUTE WS-CONTADOR = WS-CONTADOR + 1
COMPUTE WS-SALARIO-ANUAL = WS-SALARIO-MES * 12
COMPUTE WS-DIAGONAL = ((2 * WS-LADO ** 2) ** 0,5)
Observe o compute com o nmero 0,5 escrito com vrgula para separar a parte
decimal. Isso s possvel se no pargrafo SPECIAL-NAMES for utilizado a declarao DECIMAL-POINT IS COMMA como ser visto mais adiante.
Os operadores aritmticos possuem prioridades diferentes, como mostra a
tabela abaixo. Quando houver operadores de mesma prioridade, eles sero executados da esquerda para a direita.
Operao Smbolo Prioridade
Parnteses ( ) 0
Potncia ** 1
Multiplicao * 2
Diviso / 2
Adio + 3
Subtrao - 3
Deve haver um espao em branco antes e depois do operador aritmtico e do operador de atribuio. Fique atento ao fato de que as expresses aritmticas devem ser escritas em formato linear. Exemplo, a expresso aritmtica abaixo
= +
+
+
convertida para o formato linear fica
X = A + (B /(C + (D / (E + F))))
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
16
MOVE Bsico
A instruo MOVE copia o valor de uma constante ou o contedo de uma
varivel para uma ou mais variveis. IMPORTANTE: A instruo no MOVE dados, mas sim faz uma CPIA.
Alinhamento alfabtico ou alfanumrico
Os dados so acomodados na varivel receptora alinhado-se da esquerda para a direita. Se a varivel emissora for maior que a receptora, os caracteres mais a direita, em excesso, sero truncados na varivel receptora. Se a emissora for menor que a receptora os caracteres faltantes para preencher o campo receptor sero preenchidos com SPACES. Exemplo:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
MOVE GRACE HOPPER TO WS-NOME
Alinhamento Numrico
Os dados so acomodados na varivel receptora alinhando-se da direita para a esquerda. Se a varivel emissora for maior que a receptora os dgitos mais a esquerda da varivel emissora sero truncados. Quando a varivel receptora for maior que a emissora ou o valor numrico menor que o tamanho da varivel, ocorre preenchimento com zeros esquerda. Exemplo:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
MOVE 7010,50 TO WS-VALOR
Quando h vrgula na varivel emissora e receptora, separando a parte inteira
da decimal, as vrgulas so alinhadas e depois o move realizado. O que no couber na parte inteira ( esquerda) ou decimal ( direita) truncado.
Exemplos de MOVE:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
MOVE 0 TO WS-CTLIDO
WS-CTGRAVA
WS-CTDESP
MOVE 3.14159 TO WS-PI
MOVE ZEROS TO WS-ACUMULADOR
MOVE SPACES TO WS-MENSAGEM
MOVE ALL - TO WS-LINHA
MOVE N TO WS-FIM
MOVE HIGH-VALUES TO WS-CODCLI
MOVE LOW-VALUES TO WS-CHAVE
G R A C E H O P P E R
WS-NOME
0 0 0 0 0 0 7 0 1 0 5 0
WS-VALOR
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
17
1As constantes figurativas SPACES, HIGH-VALUES e LOW-VALUES s podem
ser movidas para variveis alfanumricas. A opo ALL move uma constante repetida
vezes at preencher a varivel receptora.
A constante figurativa ZERO, ZEROS ou ZEROES, pode ser movida para
variveis numricas e alfanumricas.
A tabela abaixo mostra quais tipos de variveis podem ter seu contedo
movido para outros tipos de variveis.
LOW-VALUES e HIGH-VALUES
so respectivamente o menor e o maior
valor que se pode armazenar em uma
varivel. Na tabela EBCDIC, que a
tabela de caracteres aceitos pelo
mainframe correspondem ao primeiro e
ltimo valor respectivamente, como mostra
a tabela ao lado:
LOW-VALUES
....
HIGH-VALUES
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
18
Abaixo temos um trecho de programa COBOL mostrando os diversos tipos de
variveis, alguns MOVEs e o DISPLAY dos valores.
*----------------------------------------------------------------*
WORKING-STORAGE SECTION.
*----------------------------------------------------------------*
* VE VARIAVEL EMISSORA
77 VE-ALFANUMERICO PIC X(10).
77 VE-NUMERICO-INTEIRO PIC 9(10).
77 VE-NUMERICO-NAO-INTEIRO PIC 9(08)V99.
77 VE-NUMERICO-EDITADO PIC $ZZ.ZZZ.ZZ9,99+.
77 VE-ALFANUMERICO-EDITADO PIC XXBXXBXXBXXBXX.
77 VE-ALFABETICO PIC A(10).
* VR VARIAVEL RECEPTORA
77 VR-ALFANUMERICO PIC X(10).
77 VR-NUMERICO-INTEIRO PIC 9(10).
77 VR-NUMERICO-NAO-INTEIRO PIC 9(08)V99.
77 VR-NUMERICO-EDITADO PIC $ZZ.ZZZ.ZZ9,99+.
77 VR-ALFANUMERICO-EDITADO PIC XXBXXBXXBXXBXX.
77 VR-ALFABETICO PIC A(10).
*----------------------------------------------------------------*
PROCEDURE DIVISION.
*----------------------------------------------------------------*
MOVE '1A2B3C4D5E' TO VE-ALFANUMERICO
MOVE 123 TO VE-NUMERICO-INTEIRO
MOVE 123,45 TO VE-NUMERICO-NAO-INTEIRO
MOVE 678,90 TO VE-NUMERICO-EDITADO
MOVE '1A2B3C4D5E' TO VE-ALFANUMERICO-EDITADO
MOVE 'QWERTYUIOP' TO VE-ALFABETICO
DISPLAY '*----------------------------------------------*'
DISPLAY 'CONTEUDO VARIAVEL EMISSORA'
DISPLAY '*----------------------------------------------*'
DISPLAY 'VE-ALFANUMERICO ' VE-ALFANUMERICO
DISPLAY 'VE-NUMERICO-INTEIRO ' VE-NUMERICO-INTEIRO
DISPLAY 'VE-NUMERICO-NAO-INTEIRO ' VE-NUMERICO-NAO-INTEIRO
DISPLAY 'VE-NUMERICO-EDITADO ' VE-NUMERICO-EDITADO
DISPLAY 'VE-ALFANUMERICO-EDITADO ' VE-ALFANUMERICO-EDITADO
DISPLAY 'VE-ALFABETICO ' VE-ALFABETICO
*----------------------------------------------------------------*
O comando DISPLAY exibe na SYSOUT as seguintes informaes:
*----------------------------------------------*
CONTEUDO VARIAVEL EMISSORA
*----------------------------------------------*
VE-ALFANUMERICO 1A2B3C4D5E
VE-NUMERICO-INTEIRO 0000000123
VE-NUMERICO-NAO-INTEIRO 0000012345
VE-NUMERICO-EDITADO $ 678,90+
VE-ALFANUMERICO-EDITADO 1A 2B 3C 4D 5E
VE-ALFABETICO QWERTYUIOP
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
19
1Foram feitos vrios MOVEs de variveis de um tipo para todos os outros tipo,
as que do erros na compilao esto escritos em vermelho, j as que produzem valores errados esto em azul.
*----------------------------------------------------------------*
MOVE VE-ALFANUMERICO TO VR-ALFANUMERICO
MOVE VE-ALFANUMERICO TO VR-NUMERICO-INTEIRO
MOVE VE-ALFANUMERICO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-ALFANUMERICO TO VR-NUMERICO-EDITADO
MOVE VE-ALFANUMERICO TO VR-ALFANUMERICO-EDITADO
MOVE VE-ALFANUMERICO TO VR-ALFABETICO
*----------------------------------------------------------------*
MOVE VE-NUMERICO-INTEIRO TO VR-ALFANUMERICO
MOVE VE-NUMERICO-INTEIRO TO VR-NUMERICO-INTEIRO
MOVE VE-NUMERICO-INTEIRO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-NUMERICO-INTEIRO TO VR-NUMERICO-EDITADO
MOVE VE-NUMERICO-INTEIRO TO VR-ALFANUMERICO-EDITADO
MOVE VE-NUMERICO-INTEIRO TO VR-ALFABETICO
*----------------------------------------------------------------*
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-ALFANUMERICO
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-NUMERICO-INTEIRO
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-NUMERICO-EDITADO
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-ALFANUMERICO-EDITADO
MOVE VE-NUMERICO-NAO-INTEIRO TO VR-ALFABETICO
*----------------------------------------------------------------*
MOVE VE-NUMERICO-EDITADO TO VR-ALFANUMERICO
MOVE VE-NUMERICO-EDITADO TO VR-NUMERICO-INTEIRO
MOVE VE-NUMERICO-EDITADO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-NUMERICO-EDITADO TO VR-NUMERICO-EDITADO
MOVE VE-NUMERICO-EDITADO TO VR-ALFANUMERICO-EDITADO
MOVE VE-NUMERICO-EDITADO TO VR-ALFABETICO
*----------------------------------------------------------------*
MOVE VE-ALFANUMERICO-EDITADO TO VR-ALFANUMERICO
MOVE VE-ALFANUMERICO-EDITADO TO VR-NUMERICO-INTEIRO
MOVE VE-ALFANUMERICO-EDITADO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-ALFANUMERICO-EDITADO TO VR-NUMERICO-EDITADO
MOVE VE-ALFANUMERICO-EDITADO TO VR-ALFANUMERICO-EDITADO
MOVE VE-ALFANUMERICO-EDITADO TO VR-ALFABETICO
*----------------------------------------------------------------*
MOVE VE-ALFABETICO TO VR-ALFANUMERICO
MOVE VE-ALFABETICO TO VR-NUMERICO-INTEIRO
MOVE VE-ALFABETICO TO VR-NUMERICO-NAO-INTEIRO
MOVE VE-ALFABETICO TO VR-NUMERICO-EDITADO
MOVE VE-ALFABETICO TO VR-ALFANUMERICO-EDITADO
MOVE VE-ALFABETICO TO VR-ALFABETICO
*----------------------------------------------------------------*
Os MOVES que produzem resultados errados, geram os seguintes contedos:
*----------------------------------------------*
RESULTADO DO MOVE DE ALFANUMERICO PARA OUTRAS
*----------------------------------------------*
VR-ALFANUMERICO 1A2B3C4D5E
VR-NUMERICO-INTEIRO 1A2B3C4D55
VR-NUMERICO-NAO-INTEIRO 2B3C4D5500
VR-NUMERICO-EDITADO $22.334.455,00+
VR-ALFANUMERICO-EDITADO 1A 2B 3C 4D 5E
VR-ALFABETICO 1A2B3C4D5E
Mother of God!
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
20
Na compilao, as mensagens de erros para os MOVEs invlidos so:
"VE-NUMERICO-INTEIRO (NUMERIC INTEGER)" and "VR-ALFABETICO (ALPHABETIC)" did not follow
the "MOVE" statement compatibility rules. The statement was discarded.
"VE-NUMERICO-NAO-INTEIRO (NUMERIC NON-INTEGER)" and "VR-ALFANUMERICO (ALPHANUMERIC)" did
not follow the "MOVE" statement compatibility rules. The statement was discarded.
"VE-NUMERICO-NAO-INTEIRO (NUMERIC NON-INTEGER)" and "VR-ALFANUMERICO-EDITADO
(ALPHANUMERIC-EDITED)" did not follow the "MOVE" statement compatibility rules. The
statement was discarded.
"VE-NUMERICO-NAO-INTEIRO (NUMERIC NON-INTEGER)" and "VR-ALFABETICO (ALPHABETIC)" did not
follow the "MOVE" statement compatibility rules. The statement was discarded.
"VE-NUMERICO-EDITADO (NUMERIC-EDITED)" and "VR-ALFABETICO (ALPHABETIC)" did not follow
the "MOVE" statement compatibility rules. The statement was discarded.
"VE-ALFANUMERICO-EDITADO (ALPHANUMERIC-EDITED)" and "VR-NUMERICO-INTEIRO (NUMERIC
INTEGER)" did not follow the "MOVE" statement compatibility rules. The statement was
discarded.
"VE-ALFANUMERICO-EDITADO (ALPHANUMERIC-EDITED)" and "VR-NUMERICO-NAO-INTEIRO (NUMERIC
NON-INTEGER)" did not follow the "MOVE" statement compatibility rules. The statement
was discarded.
"VE-ALFANUMERICO-EDITADO (ALPHANUMERIC-EDITED)" and "VR-NUMERICO-EDITADO (NUMERIC-
EDITED)" did not follow the "MOVE" statement compatibility rules. The statement was
discarded.
"VE-ALFABETICO (ALPHABETIC)" and "VR-NUMERICO-INTEIRO (NUMERIC INTEGER)" did not follow
the "MOVE" statement compatibility rules. The statement was discarded.
"VE-ALFABETICO (ALPHABETIC)" and "VR-NUMERICO-NAO-INTEIRO (NUMERIC NON-INTEGER)" did not
follow the "MOVE" statement compatibility rules. The statement was discarded.
"VE-ALFABETICO (ALPHABETIC)" and "VR-NUMERICO-EDITADO (NUMERIC-EDITED)" did not follow
the "MOVE" statement compatibility rules. The statement was discarded.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
21
1IF ELSE END-IF
Permite o desvio condicional do fluxo de processamento. Operadores
relacionais e lgicos so usados para montar uma condio, que pode ser verdadeira ou falsa, de acordo com os valores das variveis desta condio.
Abaixo do IF so executadas as instrues se a condio for verdadeira, aps
o ELSE so executadas as instrues se a condio for falsa. Um IF pode ou no ter ELSE. O THEN opcional e raramente usado. No ser usado neste treinamento.
Exemplo:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
XXXXXXXXXXXIF WS-QTDEST < WS-QTDMIN THEN
XXXXXX*-------INSTRUCOES SE CONDICAO FOR VERDADEIRA
XXXXXXXXXXX COMPUTE WS-QTDREP = WS-QTDMAX WS-QTDMIN
XXXXXXXXXXX DISPLAY QUANTIDADE PARA REPOR NO ESTOQUE = WS-QTDREP
XXXXXXXXXXXELSE
XXXXXX*-------INSTRUCOES SE CONDICAO FOR FALSA
XXXXXXXXXXX MOVE 0 TO WS-QTDREP
XXXXXXXXXXX DISPLAY NAO HA NADA PARA REPOR NO ESTOQUE
XXXXXXXXXXXEND-IF
CONDIO As condies podem sem simples (apenas operador relacional) ou complexas (expresses aritmticas, relacionais e lgicas). As tabelas abaixo mostram os operadores relacionais, operadores lgicos e os testes de categoria.
OPERADORES RELACIONAIS
Smbolo Palavra em COBOL
Significado
= EQUAL igual
NOT = NOT EQUAL diferente
< LESS Menor
>= NOT LESS maior ou igual
NOT < NOT LESS maior ou igual
> GREATER maior
NOT GREATER menor ou igual
OPERADORES LGICOS
Operador Significado Prioridade
( ) parnteses 0
NOT NO 1
AND E 2
OR OU 3
OPERADORES DE CATEGORIAS
Teste de Sinal
IS POSITIVE
IS NEGATIVE
IS ZERO
Teste de Classe
IS NUMERIC
IS ALPHABETIC
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
22
Exemplos:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
XXXXXX*--------------------IF SEM ELSE---------------------*
XXXXXXXXXXXIF WS-SALARIO < 400
XXXXXXXXXXX COMPUTE WS-SALARIO = WS-SALARIO + 200
XXXXXXXXXXX PERFORM 050-IMPRIME-DEMONSTRATIVO
XXXXXXXXXXXEND-IF
XXXXXX*--------------------IF COM ELSE---------------------*
XXXXXXXXXXXIF WS-MEDIA NOT < 7
XXXXXXXXXXX DISPLAY ALUNO APROVADO COM MEDIA = WS-MEDIA
XXXXXXXXXXXELSE
XXXXXXXXXXX DISPLAY ALUNO REPROVADO COM MEDIA = WS-MEDIA
XXXXXXXXXXXEND-IF
XXXXXX*--------------------IF ENCADEADO--------------------*
XXXXXXX IF A > B
XXXXXXXXXXX IF A > C
XXXXXXXXXXX IF B > C
XXXXXXXXXXXXXXXXX DISPLAY C B A
XXXXXXXXXXX ELSE
XXXXXXXXXXXXXXXXX DISPLAY B C A
XXXXXXXXXXX END-IF
XXXXXXXXXXX ELSE
XXXXXXXXXXXXXX DISPLAY B A C
XXXXXXXXXXX END-IF
XXXXXXXXXXXELSE
XXXXXXXXXXX IF A > C
XXXXXXXXXXXXXX DISPLAY C A B
XXXXXXXXXXX ELSE
XXXXXXXXXXX IF B > C
XXXXXXXXXXXXXXXXX DISPLAY A C B
XXXXXXXXXXX ELSE
XXXXXXXXXXXXXXXXX DISPLAY A B C
XXXXXXXXXXX END-IF
XXXXXXXXXXX END-IF
XXXXXXXXXXXEND-IF
XXXXXX*---------------------IF COMPLEXO--------------------*
XXXXXXXXXXXIF R4 = 0 AND R100 NOT = 0 OR R400 = 0 AND R3600 NOT = 0
XXXXXXXXXXX DISPLAY EH BISSEXTO
XXXXXXXXXXXELSE
XXXXXXXXXXX DISPLAY NAO EH BISSEXTO
XXXXXXXXXXXEND-IF
XXXXXX*------------------IF DE CATEGORIAS------------------*
XXXXXXXXXXXIF WS-SALARIO IS NUMERIC AND
XXXXXXXXXXXXXXWS-NOME IS ALPHABETIC AND
XXXXXXXXXXXXXXWS-TAXA IS POSITIVE
XXXXXXXXXXX PERFORM 150-CALCULA-VALOR
XXXXXXXXXXXELSE
XXXXXXXXXXX DISPLAY REGISTRO INVALIDO
XXXXXXXXXXXEND-IF
XXXXXX*-----------IF DE TESTE DE MULTIPLO VALORES----------*
XXXXXXXXXXXIF WS-OPCAO = 1 OR 2 OR 3 OR 4 OR 5
XXXXXXXXXXX DISPLAY BOA OPCAO
XXXXXXXXXXXEND-IF
XXXXXXXXXXXIF WS-VALOR = 2 OR > 3 OR NOT < 4
XXXXXXXXXXX DISPLAY VALOR IDEAL
XXXXXXXXXXXEND-IF
XXXXXXXXXXXIF WS-OPCAO = 8 OR 9 AND WS-VALOR = 7 OR 9
XXXXXXXXXXX DISPLAY OTIMA COMBINACAO
XXXXXXXXXXXEND-IF
XXXXXX*-----------IF DE EXPRESSAO ARITMETICA---------------*
XXXXXXXXXXXIF WS-SALARIO + WS-BONUS > 5000
XXXXXXXXXXX DISPLAY OTIMO SALARIO, JA PODE CASAR.
XXXXXXXXXXXEND-IF
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
23
1 PERFORM Bsico
Executa apenas 1 vez o bloco de instrues de um pargrafo ou SECTION.
Exemplos:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
PERFORM 010-INICIALIZAR
PERFORM 070-TERMINO
PERFORM com a opo UNTIL
Executa o bloco de instrues de um pargrafo ou SECTION at que uma
determinada situao ocorra.
Se nada for informado, feito o teste da condio ANTES de executar o
pargrafo ou SECTION, mas possvel especificar se o teste deve ser feito antes ou
depois com a opo WITH TEST BEFORE ou WITH TEST AFTER, respectivamente.
Exemplos:
----+-*A-1-B--+----2----+----3----+----4----+----5----+----6----+----7--|-+----8
*
* POR DEFAULT, SERA VERIFICADO A CONDICAO PRIMEIRO E SE
* FOR VERDADEIRA, A ROTINA SERA EXECUTADA
*
PERFORM 030-PROCESSAR
UNTIL FS-VCADPRD = 10
*
* COM A OPCAO WITH TEST BEFORE (DEFAULT)
* O PERFORM FUNCIONA COMO O LACO DE REPETICAO
* WHILE (ENQUANTO)
*
PERFORM 055-IMPRIME-TABUADA
WITH TEST BEFORE
UNTIL WS-CONTADOR > 10
*
* COM A OPCAO WITH TEST AFTER (NAO DEFAULT)
* O PERFORM FUNCIONA COMO O LACO DE REPETICAO
* DO/WHILE (FACA/ENQUANTO), EXECUTANDO A ROTINA
* PRIMEIRO E DEPOIS VERIFICANDO SE PODE EXECUTAR NOVAMENTE
*
PERFORM 080-CALCULA-JUROS
WITH TEST AFTER
UNTIL WS-MES > 12
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
24
a viso geral do algoritmo em relao aos arquivos de entrada e de sada. Os
smbolos utilizados em macro-fluxo e seu significado so mostrados abaixo:
Smbolo Significado
ou
Arquivo sequencial em fita magntica
Arquivo sequencial em disco
Arquivo indexado em disco
Tabela de um banco de dados relacional
Relatrio (Arquivo para impresso)
Programa
SYSIN (System Input Entrada via JCL)
SYSOUT (System Output Sada via SPOOL)
Teoria MACRO-FLUXO
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
25
1No Macro-Fluxo os arquivos de entrada (INPUT) ficam acima do programa, e
os de sada (OUTPUT) ficam abaixo. Um macro-fluxo d uma primeira idia do esforo
necessrio para desenvolver o algoritmo. Quanto maior a quantidade de arquivos que
o programa deve manipular, maior deve ser sua complexidade.
Um programa complexo no significa um programa difcil. O termo
complexidade aqui se refere a quantidade de instrues que o programa dever
executar para atingir seu objetivo.
Abaixo temos um exemplo de macro-fluxo onde o arquivo de vendas lido e
gravado um relatrio de comisses a pagar atravs do programa GeraComi.
Arquivo de entrada
(leitura) INPUT
Arquivo de sada
(gravao) OUPUT
vendas
GeraComi
Comissao
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
26
Responda as questes abaixo, depois pea para
que seu colega as corrija.
1) Dadas as sentenas abaixo, coloque V ou F entre os parnteses, caso a mesma
seja verdadeira ou falsa.
A. ( ) O COBOL foi criado em 1959 pelo CODASYL, mas a primeira verso s saiu
em 1960 com o nome COBOL 60.
B. ( ) Grace Hopper criou a linguagem FLOW-MATIC, que junto com a linguagem
CONTRAM de Bob Bemer, foram as principais linguagens que influenciaram o
COBOL.
C. ( ) O COBOL uma linguagem de baixo nvel (prxima a linguagem de
mquina), parecida com o Assembly, de difcil aprendizagem e altamente
complexa.
D. ( ) COBOL um acrnimo para Completely Over and Beyond Obvius Logic.
E. ( ) No processamento BATCH, uma coleo de registros processada, sem a
interveno do usurio, at que todos os registros terminem ou um erro de
processamento ocorra.
F. ( ) So exemplos de processamento Batch: Pagar uma conta de luz no caixa
eletrnico, consultar o saldo de uma conta corrente via internet, entrevistar um
candidato a uma vaga de emprego e escrever um e-mail solicitando a 2 via de
um boleto.
Practice
Atividade Reviso aos pares
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
27
12) Coloque entre parnteses qual parte do processamento BATCH essas tarefas so
executadas:
a) rotina-inicializar b) rotina-processar c) rotina-termino
( ) Processamento dos campos numricos pelos operadores aritmticos
(+, -, *, / ou **)
( ) Abertura dos arquivos de entrada e sada
( ) Fechamento dos arquivos de entrada e sada
( ) Exibio de mensagem avisando do trmino normal de processamento
( ) Inicializao das variveis (Contadores e Acumuladores)
( ) Leitura do primeiro registro do arquivo de entrada
( ) Leitura do prximo registro do arquivo de entrada
3) Coloque V ou F se as aes abaixo caracterizam (verdadeiro) ou no (falso) um
processamento batch
( ) O professor corrigindo as avaliaes de uma turma
( ) Um contador registrando no livro fiscal as notas fiscais emitidas por uma
empresa no ms passado
( ) Pagar uma conta de telefone no caixa eletrnico de um banco
( ) Dar baixa no estoque de uma geladeira vendida na loja
( ) Separar do cadastro de clientes aqueles que no compram a mais de 30 dias
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
28
4) Marque com um X os comandos COBOL com erro de sintaxe ou de lgica,
sublinhando a parte errada.
a. ( ) ACCEPT WS-HORASTRAB FROM SYSOUT
b. ( ) DISPLAY PROCESSADO COM SUCESSO
c. ( ) DISPLAY LIDOS = WS-CTLIDO
d. ( ) DISPLAY ((2 * WS-LADO ** 2) ** 0,5)
e. ( ) COMPUTE WS-DIAGONAL = ((2 * WS-LADO ** 2) ** 0,5)
f. ( ) COMPUTE WS-SALARIO=WS-HORASTRAB*WS-SALARIOHORA
g. ( ) MOVE 25 TO WS-SALARIO-A WS-SALARIO-B WS-SALARIO-C
h. ( ) MOVE WS-SALARIO TO 25
i. ( ) MOVE WS-LADO1 WS-LADO2 WS-LADO3 TO WS-TRIANGULO
j. ( ) IF WS-QTDEST NOT < 1000
k. ( ) IF WS-SALDO IS NUMERIC AND ALPHABETIC
l. ( ) IF WS-SALDO IS POSITIVE OR NEGATIVE
m. ( ) IF WS-TIPOCONTA = CC OR CP OR CI
n. ( ) PERFORM 010-INICIALIZAR 020-PROCESSAR 030-TERMINO
o. ( ) PERFORM 055-CALCULO UNTIL WS-SENTINELA = 0
p. ( ) PERFORM WITHOUT TEST 040-EXIBE-RESULTADO
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
29
1
Em grupo de at 3 alunos, faa os Macro-fluxos solicitados,
compare com os de seus colegas e anote os corretos.
a) O programa PGMFOPAG processa a folha de pagamento de uma empresa.
Ele ler o arquivo HORARIO (sequencial em disco) e a tabela TABFUNC
(tabela de um banco de dados) e gravar o arquivo FOLHAPAG (sequencial
em fita magntica) e imprimir o relatrio CHEQUES.
b) O programa ATUESTOK atualiza o estoque de uma empresa com base na
movimentao. Ler o arquivo CADANT (sequencial em disco) e o arquivo
MOVESTOK (sequencial em fita magntica) e gravar o arquivo CADATU
(sequencial em disco) e imprimir o relatrio RELOCORR.
Atividade Flip chart
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
30
Converta a especificao do programa abaixo para
a PROCEDURE DIVISION do COBOL.
Pargrafo 0000-EEXXNN02
Executar o pargrafo 1000-INICIALIZAR
Executar o pargrafo 2000-PROCESSAR
at que a varivel WS-FIM seja igual a S
Executar o pargrafo 3000-termino
Parar o programa
Pargrafo 1000-inicializar
Mover zero para as variveis WS-CONT, WS-CTLIDO
Mover N para a varivel WS-FIM
Executar o pargrafo 1500-LER-SYSIN
Pargrafo 1500-LER-SYSIN
Receber dado da SYSIN e armazenar na varivel WS-TAB
Se a varivel WS-TAB for igual a zero
Mover S para a varivel WS-FIM
Seno
Incrementar de um a varivel WS-CTLIDO
Fim-se
Pargrafo 2000-PROCESSAR
Executar o pargrafo 2500-IMPRIME-TABUADA
at que a varivel WS-CONT seja igual a dez
Mover zero para a varivel WS-CONT
Executar o pargrafo 1500-LER-SYSIN
Pargrafo 2500-IMPRIME-TABUADA
Incrementar de um a varivel WS-CONT
Multiplicar as variveis WS-CONT e WS-TAB dando WS-PROD
Exibir WS-TAB X WS-CONT = WS-PROD
Pargrafo 3000-TERMINO
Exibir Quantidade de nmeros lidos = WS-CTLIDO
Exibir TERMINO NORMAL DO EEXXNN02
Trabalhe em duplas TEXTO COBOL
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
31
1
0000-EEXXNN02.
PERFORM 1000-INICIALIZAR
PERFORM 2000-PROCESSAR UNTIL WS-FIM = "S"
PERFORM 3000-TERMINO
STOP RUN
.
1000-INICIALIZAR.
.
1500-LER-SYSIN.
.
2000-PROCESSAR.
.
2500-IMPRIME-TABUADA.
.
3000-TERMINO.
.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
32
Converta o programa COBOL abaixo para texto.
0000-EEXXNN03.
PERFORM 1000-INICIALIZAR
PERFORM 2000-PROCESSAR UNTIL WS-FIM = "S"
PERFORM 3000-TERMINO
STOP RUN
.
1000-INICIALIZAR.
MOVE "N" TO WS-FIM
MOVE 0 TO WS-CTLIDO
PERFORM 1500-LER-SYSIN
.
1500-LER-SYSIN.
ACCEPT WS-NUM FROM SYSIN
IF WS-NUM = 0
MOVE "S" TO WS-FIM
ELSE
COMPUTE WS-CTLIDO = WS-CTLIDO + 1
END-IF
.
2000-PROCESSAR.
MOVE 1 TO WS-CONT
MOVE 0 TO WS-SOMA
PERFORM 2500-CALCULA UNTIL WS-CONT > WS-NUM
DISPLAY A SOMA DOS NATURAIS ATE WS-NUM " = " WS-SOMA
PERFORM 1500-LER-SYSIN
.
2500-CALCULA.
COMPUTE WS-SOMA = WS-SOMA + WS-CONT
COMPUTE WS-CONT = WS-CONT + 1
.
3000-TERMINO.
DISPLAY "TOTAL DE NUMEROS LIDOS = " WS-CTLIDO
DISPLAY "TERMINO NORMAL DO EEXXNN03"
.
Trabalhe em duplas COBOL TEXTO
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
33
1Pargrafo 0000-EEXXNN03.
Executar o pargrafo 1000-inicializar
Executar o pargrafo 2000-processar at que WS-FIM seja S
Executar o pargrafo 3000-termino
Parar o programa
Pargrafo 1000-INICIALIZAR.
Pargrafo 1500-LER-SYSIN.
Pargrafo 2000-PROCESSAR.
Pargrafo 2500-calcula.
Pargrafo 3000-TERMINO.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
34
Objetivo do Programa
O Departamento Financeiro do Banco DOPOLVO S.A. precisa de um programa para simular emprstimos aos seus clientes.
Os dados dos diversos emprstimos sero fornecidos via SYSIN e lidos pelo
programa GPXXNN01, que dever calcular o valor da parcela de cada emprstimo a partir da frmula abaixo, onde vp o valor da parcela, ve o valor do emprstimo, j o juros e n a quantidade de parcelas.
=
100
1 1
(1 +
100)
= ( / 100) / (1 1 / (1 + / 100) )
Macro-Fluxo
Performance
Todos Juntos PROJETO 1
SYSIN
SYSOUT
GPXXNN01
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
35
1Layout da SYSIN
Nome do Registro WS-REG-SYSIN
Nome da Varivel
Tipo e
Tamanho
do Dado
Descrio do Dado
WS-NUM-SIMULACAO 9(04) Nmero da Simulao
WS-VAL-EMPRESTIMO 9(06)V99 Valor do Emprstimo
WS-JUROS 9(02)V99 Percentual de Juros Compostos ao Ms
WS-QTD-PARCELAS 9(02) Quantidade de Parcelas
Layout da SYSOUT
O resultado do processamento ser exibido na SYSOUT pela instruo
DISPLAY. Para cada simulao de emprstimo exibir os seguintes dados:
11234567892123456789312345678941234567895
12345678901234567890123456789012345678901234567890
**************************************************
NUMERO DA SIMULACAO.....: 9999
VALOR DO EMPRESTIMO.....: 99999999
JUROS...................: 9999
QTDE. DE PARCELAS.......: 99
VALOR DA PARCELA ........: 99999999
VALOR TOTAL.............: 9999999999
**************************************************
No final do processamento, exibir o seguinte resumo:
11234567892123456789312345678941234567895
12345678901234567890123456789012345678901234567890
**************************************************
TOTAL DE SIMULACOES LIDAS........: 9999
TOTAL DE SIMULACOES PROCESSADAS..: 9999
**************************************************
Bem como a frase:
11234567892123456789312345678941234567895
12345678901234567890123456789012345678901234567890
**************************************************
* TERMINO NORMAL DE PROCESSAMENTO DO GPXXNN01 *
**************************************************
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
36
Observao
O pargrafo principal chama os pargrafos inicializar, processar e trmino, formando a seguinte hierarquia de pargrafos:
JOB de Execuo
O dados para realizao da simulao do emprstimo podem ser vistas na SYSIN. Observe a ltima simulao com tudo zero (sentinela), que indicar ao programa que no h mais simulaes para processar:
11234567892123456789312345678941234567895123456789612345678971234567898
12345678901234567890123456789012345678901234567890123456789012345678901234567890
//GPXXNN01 JOB 'SEUNOME',MSGCLASS=X,CLASS=C,NOTIFY=GPXXNN,TIME=(0,20)
//*******************************************************************
//STEP1 EXEC PGM=GPXXNN01
//STEPLIB DD DSN=GP.GERAL.LOADLIB,DISP=SHR
//SYSIN DD *
000100100000100010
000200400000080015
000308000000150050
000410000000040060
000000000000000000
//*
0000-PRINCIPAL
1000-INICIALIZAR 2000-PROCESSAR 3000-TERMINO
1500-LER-SYSIN 1500-LER-SYSIN
ACCEPT
0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 1 0
WS-REG-SYSIN
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
37
1
Orientao para processamento
Pargrafo Principal (0000-GPXXNN01)
Executa o pargrafo 1000-INICIALIZAR
Executa o pargrafo 2000-PROCESSAR
at que o registro lido na SYSIN seja o sentinela
Executar o pargrafo 3000-TERMINO
Encerrar o programa
Pargrafo 1000-INICIALIZAR Mover zero para os contadores
contador de simulaes lidas contador de simulaes processadas
Executar o pargrafo 1500-LER-SYSIN Pargrafo 1500-LER-SYSIN
Ler um registro na SYSIN (ACCEPT) Se o registro no for tudo zero Somar 1 ao contador de Simulaes lidas
Pargrafo 2000-PROCESSAR Calcular o valor da parcela do emprstimo Calcular o valor da soma das parcelas
Exibir os dados na SYSOUT Somar 1 ao contador de simulaes processadas Executar o pargrafo 1500-LER-SYSIN
No pargrafo 3000-TERMINO fazer: Exibir o resumo do processamento Exibir frase de trmino normal
Com base nesta especificao de programa, escreva nas pginas seguintes a
PROCEDURE DIVISION do programa COBOL que atenda a necessidade do Banco
DOPOLVO S.A.
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
38
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
39
1
-
Parte 1
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
40
Avaliao Ento...Como foi ?!?
Estou fera!
Fiz Certo!
Muito Bom Bom regular ruim Muito ruim
-
Parte
O que um Mainframe?
um computador de Grande Porte. Nos anos70 e 80 quando quase todos os computadores eram
grandes, o termo Mainframe era usado para sereferir a diferentes sistemas de computadores. Hojea maioria desses sistemas se foram, e o termoMainframe quase sempre se refere aoscomputadores IBM zSeries. De agora em diante
quando falarmos sobre Mainframes, estaremosfalando da zSeries.
David Stephens What on earth is a Mainframe?
IBM System Z10
-
Verso 2.3.5
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
3
2
Antes de iniciarmos, vamos conversar sobre os tpicos apresentados na capa desta parte. Isso importante para que seu instrutor e seus colegas saibam como est seu conhecimento sobre o assunto e se voc precisa ou pode fornecer ajuda aos colegas e instrutor.
O que voc j sabe ?
O que voc no sabe ?
Porque importante conhecer estes tpicos ?
Quais so os seus temores ?
O que voc considera difcil ?
Depois de falar sobre o assunto com seus colegas e instrutor, escreva,
desenhe, rabisque, diga algo sobre o que voc vai fazer para dominar esses tpicos. Comprometa-se!
Trocando Ideias agora que voc fala !!
Preparation
Reflexo aqui que voc se compromete !!
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
4
Vamos agora acessar o ambiente mainframe. Em geral, demora uma ou duas
semanas para que seja criado um usurio e senha para o estagirio acessar
mainframe, um processo burocrtico, onde o gerente do estagirio manda e-mail
para a rea de segurana (Security Office), justificando a necessidade do acesso, etc,
etc. Mas aqui na XPTO seu acesso ser imediato. Seu usurio e senha j esto
criados e voc poder acessar agora o ambiente.
Voc poder ter esse ambiente em sua casa. Todo estagirio da XPTO tem um
mainframe virtual chamado Hercules, que poder inclusive ser instalado em seu
notebook ou netpc.
Pratique bastante, pois a XPTO aprecia muito o estagirio que tem
desenvoltura com a interface baseada em caractere do mainframe.
Presentation
Histria O acesso ao Mainframe
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
5
2
O TSO (Time Sharing Option) um ambiente interativo que compartilha o
tempo do Mainframe com seus usurios, mas o usurio tem a impresso que o nico
a utilizar o Mainframe.
Uma vez conectado (login) ao TSO, o usurio pode excluir, visualizar,
submeter e acompanhar Jobs (servios), alocar, renomear, mover, copiar e excluir
arquivos, e tambm utilizar outros aplicativos do sistema operacional que rodam sob o
TSO como, por exemplo, RACF, HCD, SDSF, Control/M, Endevor etc. O TSO controla
todos estes aplicativos.
O nome Time Sharing Option deriva do fato que quando surgiu nos anos de
1960, tempo compartilhado (time-sharing) era considerada uma caracterstica
opcional, comparado com o padro de processamento em lotes (Batch) da poca.
Ento o TSO era oferecido como uma caracterstica opcional do Sistema Operacional
OS/MVT. Ele se tornou padro como parte do Sistema Operacional MVS em 1974.
TSO/E (E=extentions) uma srie de extenses ao TSO original e a mais usada
hoje em dia. Todos as verses atuais do Sistema Operacional, a famlia Z/OS, tem o
TSO e TSO/E instalados e comum cham-los apenas de TSO.
Teoria finalidade
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
6
O acesso ao TSO feito por um Software de Telnet (tele network = rede
distncia). Usamos o Tn3270 plus, cujo cone est no desktop.
Um duplo-clique neste cone inicializa o programa, que tem este
aspecto:
No campo Session Name voc pode colocar o seu nome, pois ele apenas
identifica a sesso do Telnet. No campo Host Name coloca-se o nmero IP do
servidor. No campo Telnet Port coloca-se o nmero da porta habilitada no servidor
para a conexo remota. No campo Terminal Time deixar 3279, que o tipo de
terminal que estamos usando. Finalmente pressione o boto connect para se conectar
ao servidor.
Anote aqui o IP e a Porta para se conectar em nosso servidor:
Teoria Login e logoff
IP
PORTSOCKET
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
7
2
Voc obter a seguinte tela:
Basta pressionar a tecla Esc para ter acesso ao menu de servios do Sistema
Operacional. Digite ento TSO e pressione ENTER para entrar na tela de Login do
TSO.
Informar o seu USERID (identificao do usurio) e pressione ENTER, ento
informe sua senha e pressione ENTER novamente. Quando aparecer os 3 asteriscos,
voc estar logado, pressione ENTER mais uma vez para ir ao menu principal do TSO.
Outra maneira de Logar no TSO digitar o comando L seguido do seu usurio, indo
direto para a tela de digitao da senha, exemplo:
L GPAZ99
Anote aqui o seu USERID:
USERID
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
8
Para sair do TSO pressionar X (EXIT) no menu principal ou PF3.
Se o painel Specify Disposition of Log Data Set aparecer, escolher a opo 2
Delete data set without printing para excluir o arquivo de LOG sem imprimi-lo. O LOG
registra todas as aes que o usurio executou durante a sesso do TSO. Isso bom
para a empresa investigar quem fez algo de errado. No nosso caso podemos excluir
sem imprimi-lo.
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
9
2
Quando aparecer READY, digitar LOGOFF e pressionar ENTER que a sesso
do TSO ser encerrada.
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
10
Com seu usurio e senha em mos, fazer o LOGIN
e o LOGOFF para se familiarizar com o procedimento.
Descubra como alterar sua senha (Password). Anote
o procedimento abaixo.
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
11
2
O uso do TSO se d atravs de Menus, Painis ou Comandos. A Navegao
por menus a mais usual. Um Menu sempre composto de opes onde voc dever
escolher uma, e somente uma, opo. Um Menu pode levar a outro Menu ou a um
Painel. O Painel o ltimo estgio da navegao dentro do TSO. No painel voc
dever digitar os dados solicitados e pressionar ENTER, para que ao seja
executada.
TeoriaNavegao por menus e painis
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
12
A partir do Menu Principal, no campo OPTION ===> informamos as letras da
opo que desejamos acessar. As mais comuns, que usaremos em nosso curso so:
P que leva ao menu ISPF/PDF Interactive System Productivity Facility /
Program Development Facility. Que usaremos para manipular arquivos, editar
programas e submeter Jobs (servios).
SD que leva ao menu System Display and Search Facility Que usaremos
para acompanhar a execuo dos Jobs (servios).
A navegao pelos menus e painis feita selecionando opes, preenchendo
campos e pressionando uma tecla de ao. A mais comum a ENTER, que executa a
ao selecionada. Abaixo temos uma imagem do teclado de um terminal IBM 3270
que emulado nos terminais PC (Personal Computer) e uma relao das teclas de
ao e seus efeitos.
Program Function (PF)
PF1 (Help) Exibe ajuda contextualizada
PF2 (Split) Divide a Janela do TSO no Cursor
PF3 Voltar ou sair salvando
PF5 Repete o ltimo comando
PF7 Retrocede uma pgina
PF8 Avana uma pgina
PF9 Navega entre 2 janelas abertas com PF2
PF10 Desloca tela esquerda
PF11 Desloca tela direita
PF12 Cancela ao em curso ou sair sem salvar
Program Attention (PA)
PA1 Encerra um comando iniciado com
erro ou Esc pressionado por engano
no PC usar tecla Page Up
PA2 Desfaz o que foi digitado
No PC usar tecla Page Down
Outras Teclas
Tab Salta o cursor para o prximo campo
CLR Limpa a tela
no PC usar ESC ou Ctrl+C
Enter Executa a ao solicitada
Reset desbloqueia o teclado
no PC usar Ctrl esquerdo
Ctrl direitoCtrl esquerdo
PF7
PF8
PF10 PF11
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
13
2
A partir do Menu principal do TSO, digitamos P para ir ao menu PDF e depois 0
para ir ao painel ISPF Setting. Tambm podemos abreviar a navegao e digitarmos
as duas opes de uma nica vez, separando-as por ponto (P.0) ou ponto-e-vrgula
(P;0).
No painel ISPF Setting vamos modificar a localizao da linha de comando,
que por default (padro) est localizado em baixo na tela, tirando a barra (/) do campo
Command line at bottom e pressionando ENTER. A linha de comando passa ento
para cima. Vamos desmarcar tambm a Tab to action bar choices, pois ao
pressionarmos a tecla HOME, o cursor posicionado na linha de comando e no na
primeira linha da tela.
Teoria
Modificando as
configuraes
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
14
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
15
2
Modifique as configuraes de sua sesso TSO/E,
conforme solicitadas abaixo. Anote o procedimento.
a) Posicionar a linha de comando na parte superior da tela.
(Command line at bottom).
b) Configure a tecla HOME para que, quando pressionada, posicionar o cursor na
linha de comando. (Tab to action bar choices).
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
16
No ambiente de Grande Porte (Mainframe) os arquivos so chamados de
DATA SET (Conjunto de Dados). O nome de um arquivo deve seguir as seguintes
regras:
a) O nome do arquivo consiste em uma ou mais partes, chamadas
qualificadores. Eles so conectados por pontos.
b) Cada qualificador deve iniciar com um caractere alfabtico de A a Z ou
caracteres nacionais americanos @, # ou $.
c) O tamanho de cada qualificador no deve exceder 8 caracteres.
d) O tamanho mximo do nome de um arquivo 44 caracteres, incluindo os
pontos conectores.
Exemplos:
CADCLI
BACKLOG.ACTIVIT
GP.GPAZ99.COBLIB
XPTO.RHSP.FERIAS.2010
A Organizao de um Arquivo (DSorg = Data Set Organizartion) diz respeito a
forma como os dados so arranjados ou organizados dentro de um arquivo. As
organizaes mais comuns so:
PS Physical Sequential (Fsico Sequencial)
um arquivo que possui registros organizados
sequencialmente, um atrs do outro, podendo ser de
tamanho fixo ou varivel. So os arquivos mais
comuns para o armazenamento de dados para
processamento em lote (Batch).
Qualificador_1
Qualificador_2
Qualificador_3
Qualificador_n
de 1 a 8 caracteres
mximo de 44 caracteres
TeoriaAlocao de data set (arquivo)
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
17
2
PO Partitioned Organization (Particionado) ou
PDS Partitioned Data Set
Um particionado um arquivo subdividido em
um pequeno e limitado nmero de arquivos virtuais
chamados membros. Para nossos propsitos, voc
pode considerar um membro como um arquivo,
cujos registros possuem um tamanho fixo,
usualmente de 80 caracteres. Os particionados
tambm so chamados de bibliotecas (Library), pois
lembram uma estante cheia de livros, que no caso
so os membros.
Ambos os arquivos (PS ou PO/PDS) podem ser blocados. Um arquivo
blocado permite que o equipamento que o l (unidade de disco ou fita), faa a leitura
de um grupo de registros de uma nica vez (bloco de registros), armazenando-os em
um buffer de memria e disponibilizando para a aplicao um registro por vez. Isso
agiliza a leitura, pois o acesso aos dados em disco ou fita mais lento por possurem
componentes mecnicos. Entre os registros (arquivo no blocado) ou entre os blocos
de registros (arquivo blocado) h um espao no gravado chamado IRG (Inter Record
Gap).
IRG REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
IRG REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
IRG REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRG
REG
ISTR
O
IRGIRG
BUFFER
FIFO
PROGRAMA
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
18
O processo de criao de arquivos chamado de Alocao. O modo mais fcil
de alocar um arquivo consultando as caractersticas de um arquivo j existente,
assim essas caractersticas ficam gravadas na memria e so repassadas para o
arquivo que se deseja alocar. A partir do menu principal do TSO escolhemos:
P (Menu PDF), 3 (utilities) e 2 (data set), ou digitamos P.3.2.
No painel Data Set Utility deixamos o campo Option em branco e preenchemos
os campos Project, Group e Type com o nome do arquivo que desejamos consultar as
informaes (caractersticas do arquivo).
Um arquivo particionado (PDS Partitioned Data Set) possuem um nome de
arquivo com 3 nveis (qualificadores).
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
19
2
Vamos consultar as informaes do arquivo GP.GPAZ99.COBLIB.
Quando pressionamos ENTER, as informaes do arquivo aparecem no painel
Data Set Information.
Depois pressionamos PF3 para voltar ao painel Data Set Utility.
Aquelas informaes ficaram armazenadas na memria e sero utilizadas na
alocao do prximo arquivo.
Para alocarmos um novo arquivo colocamos no campo Option a opo A
(Allocate new data set) e nos campos Project, Group e Type o nome do arquivo que
desejamos alocar, por exemplo, GP.GPNE19.BOOKLIB e pressionamos ENTER.
As informaes consultadas anteriormente so automaticamente preenchidas
nos campos. Basta pressionar ENTER que o arquivo alocado e a mensagem data
set allocated aparece no canto superior direito da tela.
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
20
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
21
2
Faa a alocao dos seguintes arquivos (DATA
SET), substituindo XXNN pela identificao de seu
usurio. Utilize como base os arquivos de seu instrutor.
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
22
A partir do menu principal, digitamos P.3.4, que nos levar ao painel Data Set
List Utility, que permitir a visualizao dos arquivos criados, bem como dos membros
dos arquivos particionados. No campo Dsname Level, que significa Data Set Name
Level, colocamos o nome do arquivo completo ou o comeo do nome do arquivo.
Exemplo:
GP.GPAZ99
GP.GPAZ99.C*
GP.GPAZ*
GP.*.COBLIB
Quando paramos logo antes do ponto, que separa o nome do arquivo, no
usamos o asterisco, que neste caso faz o papel de coringa. No segundo exemplo
GP.GPAZ99.C*, desejo exibir todos os arquivos que comecem com GP.GPAZ99.C, o
coringa permite que qualquer outro caractere aparea aps o ltimo C.
No campo Initial View, temos a possibilidade de exibir as seguintes
informaes dos arquivos:
1 Volume em qual disco (storage) o arquivo se encontra
2 Espao quantas trilhas (56.664 bytes no modelo de disco 3390)
3 Atributos dados armazenados no catlogo (VTOC volume table
of contents) que aponta a localizao fsica dos arquivos
4 Total todas as informaes juntas
TeoriaVisualizao dos arquivos alocados
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
23
2
Depois de informado o Dsname Level e o Initial View, pressione ENTER e os
arquivos sero exibidos, conforme tela a seguir.
INITIAL VIEW 1
INITIAL VIEW 2
INITIAL VIEW 3
INITIAL VIEW 4
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
24
Visualize os DATA SET que voc alocou na
atividade anterior, alterando o valor do campo INITIAL
VIEW desde 1 at 4.
O que acontece, na visualizao dos arquivos, quando pressionamos PF10 ou
PF11 repetidas vezes?
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
25
2
Aps exibir os arquivos pelo painel Data Set List Utility, podemos executar
diversas operaes, tais como renomear, excluir, editar, compactar, etc. Basta colocar
o cursor pelo menos a 1 caractere de distncia do lado esquerdo do nome do arquivo
e digitar um dos comandos:
E (Edit) Editar arquivo / membros
V (View) Visualizar arquivo / membros, no permite alteraes
B (Browse) Exibe arquivo / membros, no permite alteraes
R (Rename) Renomear arquivo / membros
D (Delete) Excluir arquivo / membros
Z (Compress) Comprime arquivos particionados com 100% de uso
/ exibe menu com diversas aes. Digitar o nmero da ao desejada.
I (Information) Exibe informaes sobre o Data Set
S (Information Short) Exibe informaes reduzidas sobre o Data Set
Abaixo vamos editar os membros da GP.GPAZ99.JOBLIB.
Observe que ele est com 100% de uso. Isso ocorre porque sempre que se
editar membros ser preciso salvar as alteraes. O TSO salva o membro alterado em
outro lugar dentro do particionado, deixando o anterior indisponvel. Isso faz com que o
arquivo particionado fique logo cheio, mesmo que tenha apenas um membro. Neste
caso necessrio comprimir (Z = Compress) o particionado, liberando os membros
no usados. O ABEND SE37 o indcio de que o arquivo est 100% usado e precisa
ser comprimido, ele acontece ao salvar um membro, ou sair da edio do membro
com PF3.
Teoria
manipulao dos arquivos alocados
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
26
A charge faz referncia ao Parallel Sysplex, onde possvel conectar at 32
mainframes, permitindo que todos trabalhem em conjunto para a execuo de uma
tarefa.
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
27
2
Execute os procedimentos solicitados nos Data
Sets alocados na atividade anterior, anotando como o
procedimento foi realizado:
A) Visualizar as informaes do DATA SET GP.GPXXNN.COBLIB.
B) Renomear o DATA SET GP.GPXXNN.DADOS.PESSOAIS para
GP.GPXXNN.PESSOAIS.
C) Excluir o DATA SET GP.GPXXNN.PESSOAIS.
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
28
Para adicionar um membro em um particionado, utilizamos a opo P.2 para
abrir o painel Edit Entry Utility. Informamos nos campos Project, Group e Type o nome
do particionado e no campo member o nome do membro que desejamos criar e
pressionamos ENTER. Um membro vazio aberto no modo de edio e j podemos
digitar nossos textos.
Teoria Edio de membros
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
29
2
Na linha Command podemos usar os seguintes comandos:
CANCEL sai da edio do membro sem salvar
SAVE salva o membro
RES restore apaga as mensagens exibidas pelo TSO
HI ON ativa as cores de acordo com o que est sendo digitado
HI ON COBOL ativa as cores para a linguagem COBOL
HI ON JCL ativa as cores para a linguagem JCL
HI ON ASM ativa as cores para a linguagem Assembly
HEX ON exibe o arquivo em hexadecimal
HEX OFF desliga a exibio do arquivo em hexadecimal
NUM ON enumera as linhas de 100 em 100 (o mesmo que RENUM)
NUM OFF enumera as linhas de 1 em 1
CAPS ON transforma tudo o que foi digitado em maisculo
CAPS OFF desativa CAPS ON
RECOVERY ON apenas uma vez, habilita o UNDO (desfazer)
UNDO desfaz a ltima modificao no texto
F xxxx find localiza a string xxxx no texto PF5 posiciona na prxima
C xxx yyy change troca a primeira ocorrncia de xxx por yyy
C xxx yyy ALL change troca todas as ocorrncias de xxx por yyy
L 44 locate posiciona o cursor na linha 44
M + PF8 move Letra M e tecla PF8 Avana para o fim do texto
M + PF7 move Letra M e tecla PF7 Avana para o incio do texto
EXC aaa ocultar a linha com a string aaa.
EXC aaa ALL ocultar todas as linhas com a string aaa.
PFSHOW OFF no exibe o rodap, com as teclas de funo
PFSHOW ON exibe o rodap, com as teclas de funo
PROF exibe o perfil do usurio (PROFILE) do usurio
BOTTOM avana para o fim do texto
TOP avana para o incio do texto
START Abre uma nova janela
LIST Exibe um menu com as janelas abertas
Toda linha que comea com '''''' no foi usada e quando se pressiona
ENTER elas so apagadas. Para inserir linhas, basta colocar o cursor nos asteriscos
da lateral esquerda da linha Top of Data e digitar I seguido da tecla ENTER. Para
inserir 5 linhas, digitar I5. Toda vez que for pressionado ENTER aps a digitao de
uma linha, uma nova linha com '''''' ser exibida. Se for pressionado ENTER
novamente, ela desaparece e ser necessrio digitar I em qualquer linha da lateral
esquerda da tela.
No campo SCROOL podemos escolher:
PAGE paginao da tela inteira. Abreviadamente P.
CSR paginao at a posio do cursor. Abreviadamente C.
nmero paginao pelo nmero de linhas indicado
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
30
A melhor escolha para o SCROOL CSR, pois colocamos o cursos no linha
desejada e pressionamos PF8, avanando a tela, mas parando na posio do cursor.
Os comandos que podem ser utilizados na lateral esquerda da tela de edio
so:
I insere uma linha. I5 insere 5 linhas (ou outro nmero que desejar).
D Exclui uma linha. D5 Exclui 5 linhas.
R repete uma linha. R5 repete a linha 5 vezes.
M move a linha para um destino (usar A = after ou B=before) na linha de destino
C copia a linha para um destino (usar A = after ou B=before) na linha de destino
LC (Lower Case) converte os caracteres da linha para minsculo
UC (Upper Case) converte os caracteres da linha para maisculo
X oculta uma linha. X5 oculta 5 linhas.
S exibe linha ocultada. S5 exibe 5 linhas ocultadas.
TS (Text Split) divide a linha na posio atual do cursor
COLS insere uma rgua na linha, o que ajuda na identificao das colunas
) descola linha para a direita. )5 desloca 5 colunas para a direita.
( descola linha para a esquerda. (5 desloca 5 colunas para a esquerda.
Comandos para grupos de linhas (blocos de linhas)
MM marca o incio e o trmino do bloco que desejamos mover,
usar A ou B no destino
CC marca o incio e o trmino do bloco que desejamos copiar,
usar A ou B no destino
DD marca o incio e o trmino do bloco que desejamos excluir
RR marca o incio e o trmino do bloco que desejamos repetir
)) marca o incio e o trmino do bloco que desejamos deslocar para a direita.
(( marca o incio e o trmino do bloco que desejamos deslocar para a esquerda.
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
31
2
Crie o membro TESTE dentro do particionado
GP.GPXXNN.COBLIB e digite trechos do texto abaixo.
Atividade Prtica de laboratrio
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
32
Podemos copiar membros de arquivos particionados. Basta informar a origem e
o destino do membro. A partir do menu principal digitamos P.3.3 para acessar o painel
Move/Copy Utility.
No campo option digitamos C para copiar. Abaixo da frase Specify "From" Data
Set below, then press ENTER key, digitamos nos campos Project, Group, Type e
Member o nome do particionado e do membro que desejamos copiar e pressionamos
ENTER.
Abaixo da frase Specify "To" Data Set Below, digitamos nos campos Project,
Group, Type o nome do particionado de destino do membro copiado. Se no
preenchermos o campo member, ele ser copiado com o mesmo nome, ou damos um
novo nome para o membro e pressionamos ENTER.
Uma mensagem aparece no canto superior direito indicando que a cpia foi
realizada com sucesso, como mostra as telas abaixo.
Teoria cpia de membros
-
Parte 2
www.grandeporte.com.br (11) 4427-4579 (11) 9 9903-3218
33
2
Execute os procedimentos abaixo e anote como foram
feitos:
A) Copie os membros ESKELETO e EEXXNN01 da COBLIB de seu instrutor para
seu PDS COBLIB. Anote o procedimento abaixo.
B) Mova o membro DICAS da COBLIB de seu instrutor para seu PDS COBLIB.
Anote o procedimento abaixo. O que ocorreu?
C) Copie os membros COMPCOB e CCXXNN01 da JOBLIB de seu instrutor para seu
PDS JOBLIB. Anote o procedimento abaixo.
D) Renomeie os membros (usando a opo P.3.4) EEXXNN01 de seu PDS COBLIB e
CCXXNN01 do seu PDS JOBLIB, trocando XXNN pelo prefixo de seu usurio, e
responda: Logo aps a alterao, o membro ficou com o nome alterado?
O que fazer para mostrar