Grande Porte - COBOL Level 1 - Versão 2.3.5

404

Click here to load reader

description

APOSTILA DE COBOL DA GRANDE PORTE

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.

    ,

    , ,

    ,

    ,

    [email protected]

  • 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