Direitos Autorais – Escola de Programadores 1 
CADERNO 
DE 
EXERCÍCIOSSS
Direitos Autorais – Escola de Programadores 2 
Exercício 1: Desenvolver um programa que receba uma informação passada via ...
Direitos Autorais – Escola de Programadores 3 
Exercício 6: Desenvolver um programa, utilizando os comandos PERFORM THRU e...
Direitos Autorais – Escola de Programadores 4 
Exercício 8: Desenvolver um programa estruturado que reflita a somatória do...
Direitos Autorais – Escola de Programadores 5 
Exercício 10: 
Codificar o programa EXEMPLO da apostila COBOL, criando os s...
Direitos Autorais – Escola de Programadores 6 
9(04) X(25) 9(03) 9(03) 9(03) 9(04)v99 X(06) 
SAIDA – REPOSICAO – tamanho d...
Direitos Autorais – Escola de Programadores 7 
999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 
999 x...
Direitos Autorais – Escola de Programadores 8 
 Se TIPO-M <> „A‟ ou „E‟, gravar o registro do arquivo CADFUNCA no arquivo...
Direitos Autorais – Escola de Programadores 9 
Exercício 14: Desenvolver um programa para um batimento entre dois arquivos...
Direitos Autorais – Escola de Programadores 10 
Ler Contas corrente “B” SE Fim Mover High-values para Agência e C.Corrente...
Direitos Autorais – Escola de Programadores 11 
Exercício 16: Desenvolver um programa para gerar um arquivo VSAM KSDS, à p...
Direitos Autorais – Escola de Programadores 12 
Exercício 17: 
Atualizando o cadastro de produtos (VSAM KSDS) 
Fluxo do pr...
Direitos Autorais – Escola de Programadores 13 
Se TIPO-M = „I‟ – Inclusão de registro 
 Incluir novo registro no cadastr...
Direitos Autorais – Escola de Programadores 14 
Exercício 18: Neste programa usaremos a cláusula OCCURS. Pesquisaremos uma...
Direitos Autorais – Escola de Programadores 15 
Exercício 19: Desenvolver um programa usando a instrução CALL para ligarmo...
Próximos SlideShares
Carregando em…5
×

Caderno de exercícios cobol

1.131 visualizações

Publicada em

Caderno de exercícios cobol

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.131
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Caderno de exercícios cobol

  1. 1. Direitos Autorais – Escola de Programadores 1 CADERNO DE EXERCÍCIOSSS
  2. 2. Direitos Autorais – Escola de Programadores 2 Exercício 1: Desenvolver um programa que receba uma informação passada via JCL e exiba o conteúdo desta informação na sysout de execução. Utilizar os seguintes comandos: ACCEPT, DISPLAY, DATE, TIME e DAY-OF-WEEK Exercício 2: Desenvolver um programa que efetue as 4 operações aritméticas, sendo que para cada operação, deverá ser exibido o valor do cálculo. Utilizar os seguintes comandos: ADD, SUBTRACT, MULTIPLY, DIVIDE E COMPUTE Exercício 3: Desenvolver um programa para ler números, até o final da lista e exibir somente os números maiores que 100. No final mostrar a quantidade total de números maiores que 100. Exercício 4: Desenvolver um programa usando a técnica de AVALIE ou EVALUATE, em que dada a idade de N nadadores, até idade = ZEROS, acumule a quantidade total de alunos em cada categoria, de acordo com a classificação abaixo: - Baby = até 4 anos - Infantil A = 5 a 7 anos - Infantil B = 8 a 11 anos - Juvenil A = 12 a 13 anos - Juvenil B = 14 a 17 anos - Adultos = Maiores de 18 anos No final mostrar a quantidade de nadadores em cada categoria. Exercício 5: Desenvolver um programa que identifique os números pares e impares. Processamento: Receber um número via entrada padrão - SYSIN, no formato PIC 9(03), verificar se o mesmo é par ou impar e exibir a mensagem correspondente via saída padrão – SYSOUT. Repetir o processamento, até receber um número igual a 000.
  3. 3. Direitos Autorais – Escola de Programadores 3 Exercício 6: Desenvolver um programa, utilizando os comandos PERFORM THRU e PERFORM UNTIL, conforme as seguintes etapas. - Ler o arquivo ENTRADA, até o fim - Selecionar os clientes que possuam idade superior a 60 anos e residam em São Paulo. - Gravar os dados selecionados no arquivo SAIDA. - Exibir total de Qtde. Reg.Lidos, Qtde. Reg. Gravados e Qtde. Reg. Desprezados LAYOUT – ENTRADA – Tamanho do registro (LRECL) 100 posições CODIGO NOME ENDEREÇO TELEFONE IDADE CIDADE 9(04) X(25) X(30) 9(08) 9(03) X(20) X(10) LAYOUT – SAIDA – Tamanho do registro (LRECL) 100 posições CODIGO NOME ENDEREÇO TELEFONE IDADE CIDADE 9(04) X(25) X(30) 9(08) 9(03) X(20) X(10) Exercício 7:
  4. 4. Direitos Autorais – Escola de Programadores 4 Exercício 8: Desenvolver um programa estruturado que reflita a somatória dos gastos por agência e conta do “Contas Corrente A” e grave o resultado no “Contas Corrente B”. Importante: Poderá haver vários registros no “Contas Corrente A” com a mesma agência e conta, neste caso somente um registro será gravado no “Contas Corrente B” com a somatória dos registros do “Contas Corrente A”. Exercício 9: Desenvolver um programa que leia o cadastro de alterações e grave o cadastro de alunos, exibindo a quantidade de inserções efetuadas.
  5. 5. Direitos Autorais – Escola de Programadores 5 Exercício 10: Codificar o programa EXEMPLO da apostila COBOL, criando os seus arquivos com dados sugeridos pelo professor. Execute o programa e anote os resultados abaixo: Qtde. Reg. Lidos no ARQENT Qtde. Reg. Gravados no ARQSAI Hora do início do processamento Hora do final do processamento Exercício 11: Fluxo e descrição do processamento ESTOQUE REPOSICAO GP20Bxxx REG. LIDOS REG.GRAVADOS Layouts dos arquivos de entrada e saída ENTRADA – ESTOQUE – tamanho do registro (LRECL) 50 posições CODPROD-E DESCRICAO-E QTDEST-E QTDMIN-E QTDMAX-E PRECO-E Ler os registros do arquivo ESTOQUE gerando o arquivo REPOSICAO com os itens em estoque que deverão ser repostos. Um item deverá ser reposto quando a quantidade em estoque for menor que a quantidade mínima; Calcular a quantidade de reposição como a diferença entre a quantidade máxima e a quantidade em estoque. QTDREP-S = QTDMAX-E – QTDEST-E. Ao final do processamento informar o total de registros lidos e o total de registros gravados.
  6. 6. Direitos Autorais – Escola de Programadores 6 9(04) X(25) 9(03) 9(03) 9(03) 9(04)v99 X(06) SAIDA – REPOSICAO – tamanho do registro (LRECL) 20 posições CODPROD-S QTDEST-S QTDMAX-S QTDREP-S PRECO-S 9(04) 9(03) 9(03) 9(03) 9(04)V99 X(01) Mensagem final – totais de registros lidos e gravados TOTAIS DO PROCESSAMENTO TOTAL DE REGISTROS LIDOS...: 999 TOTAL DE REGISTROS GRAVADOS: 999 ------- FINAL DE EXECUCAO ------ Exercício 12: Quebra de pagina com totalização por pagina e geral Fluxo e descrição do processamento RELATO CADALUNO GP50Bxxx Layouts dos arquivos de entrada e saída ENTRADA – CADALUNO CLASSE-E NUM-E NOME-E ENDE-E NOTA1-E NOTA2-E NOTA3-E IDADE-E X(03) 9(03) X(40) X(40) 99v99 99v99 99v99 9(02) SAIDA – RELATO – imprimir 50 linhas por pagina 1...5...10....5...20....5...30....5...40....5...50....5...60....5...70....5...80 dd/mm/aaaa ESCOLA DA VIDA - RELACAO DE ALUNOS POR SALA DE AULA PAG. 99 CODIGO DA CLASSE 999 NUMERO NOME DO ALUNO NOTA1 NOTA2 NOTA3 MEDIA Ler os registros do arquivo CADALUNO gerando relação de alunos por sala de aula. Ao final de cada classe informar o total de alunos e a media da classe. Imprimir ao final da ultima página. Iniciar a impressão de nova classe em nova pagina. Ao final do processamento imprimir, em pagina separada, com o primeiro cabeçalho o total de classes, o total de alunos da escola e media entre os alunos da escola: Media do aluno : (NOTA1 x 2 + NOTA2 x 2 + NOTA3 x 3) / 7 Média da classe: médias dos alunos da classe / total de alunos da classe Média geral : médias de todos os alunos / total de alunos da escola
  7. 7. Direitos Autorais – Escola de Programadores 7 999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 999 x......................................x Z9,99 Z9,99 Z9,99 Z9,99 TOTAL DE ALUNOS... 999 - MEDIA DA CLASSE Z9,99 TOTAL DE CLASSES... 99 - TOTAL DE ALUNOS... 999 - MEDIA GERAL.... Z9,99 Exercício 13: Atualizando o cadastro de funcionários Fluxo do processamento CADFUNCA GP60Bxxx RELATO CADMOVTO CADFUNCN Descrição do Processamento Gravar versão atualizada do Cadastro de Funcionários – CADFUNCN - a partir do processamento dos arquivos CADFUNCA e CADMOVTO, gerando relatório com as ocorrências encontradas durante a execução. Regras para o processamento Todos os registros nos arquivos CADFUNCA e CADMOVTO estão classificados em ordem ascendente pelo código do funcionário CODFUN; O campo TIPO-M, no arquivo CADMOVTO indica a operação que deverá ser realizada: TIPO-M = „A‟  Alteração de dados cadastrais; TIPO-M = „I‟  Inclusão de registro de novo funcionário; TIPO-M = „E‟  Exclusão de registro do arquivo CADFUNCA. Ler inicialmente um registro do arquivo CADFUNCA e um registro do arquivo CADMOVTO, procedendo conforme segue: 1 CODFUN-A = CODFUN-M  Alteração de dados ou exclusão de registro  Se TIPO-M = „A‟, mover os campos do registro do arquivo CADMOVTO, com conteúdo válido, para o registro do cadastro de funcionários CADFUNCA e gravar o registro atualizado no arquivo CADFUNCN. Listar o registro do arquivo CADFUNCA antes e depois da alteração com as mensagens correspondentes. CONTEÚDO VÁLIDO: campos numéricos com conteúdo > 0 e alfanuméricos com conteúdo <> de brancos.  Se TIPO-M = „E‟, não gravar o registro do arquivo CADFUNCA no arquivo CADFUNCN. Listar o registro eliminado com a mensagem correspondente.
  8. 8. Direitos Autorais – Escola de Programadores 8  Se TIPO-M <> „A‟ ou „E‟, gravar o registro do arquivo CADFUNCA no arquivo CADFUNCN sem qualquer alteração. Listar o registro do arquivo CADFUNCA com a mensagem correspondente.  Ler novo registro dos arquivos CADFUNCA e CADMOVTO. CODFUN-A < CODFUN-M  Permanência (registro sem alteração)  Gravar o registro do arquivo CADFUNCA no arquivo CADFUNCN, sem qualquer alteração. Não listar o registro.  Ler novo registro do arquivo CADFUNCA. CODFUN-A > CODFUN-M  Inclusão de novo registro do Cadastro de Funcionários  Se TIPO-M = „I‟, mover os campos do registro do arquivo CADMOVTO para a nova versão do cadastro de funcionários CADFUNCN e gravar o novo registro. Listar o registro com a mensagem correspondente. IMPORTANTE: O campo TIPO-M não faz parte do registro do arquivo CADFUNCN e, portanto não deve ser movido.  Se TIPO-M <> „I‟, listar o registro do arquivo CADMOVTO com a mensagem correspondente.  Ler novo registro do arquivo CADMOVTO. Layouts dos arquivos de entrada e saída ENTRADA – CADFUNCA – REGISTRO: 80 POSIÇÕES CODFUN-A NOME-A FUNCAO-A SALARIO-A VENCTOS-A DESCTOS-A 9(04) X(35) X(20) 9(04)v99 9(04)v99 9(04)v99 X(03) ENTRADA – CADMOVTO – REGISTRO: 80 POSIÇÕES CODFUN-M NOME-M FUNCAO-M SALARIO-M VENCTOS-M DESCTOS-M TIPO-M 9(04) X(35) X(20) 9(04)v99 9(04)v99 9(04)v99 X(01) X(02) SAIDA – CADFUNCN – REGISTRO: 80 POSIÇÕES CODFUN-N NOME-N FUNCAO-N SALARIO-N VENCTOS-N DESCTOS-N 9(04) X(35) X(20) 9(04)v99 9(04)v99 9(04)v99 X(03) SAIDA – RELPAG – imprimir 50 linhas por pagina (ver anexo)
  9. 9. Direitos Autorais – Escola de Programadores 9 Exercício 14: Desenvolver um programa para um batimento entre dois arquivos do contas correntes (“A” e “B”). Conforme a especificação abaixo: ROTINA PRINCIPAL Processar ROTINA INICIO Processar ROTINA PROCESSAMENTO até que seja Agência e C. Corrente do “A” seja High-values e Agência e C. Corrente do Movimento seja High-values Processar ROTINA FIM Parar o processamento ROTINA INICIO Exibir “INICIO DE PROCESSAMENTO” Abrir para leitura CONTAS CORRENTE “A” e Movimentos Abrir para escrita a CONTAS CORRENTE “B” e Listagem Processar ROTINA LER CONTAS CORRENTE “A” Processar ROTINA LER CONTAS MOVIMENTOS ROTINA PROCESSAMENTO SELECIONAR Agência e C.Corrente “A” e Agência e C.Corrente do Movimento Caso Agência e C.Corrente do “A” > Agência e C.Corrente do Movimento Processar MOVIMENTO SEM CONTAS CORRENTES Processar ROTINA LER MOVIMENTO Caso Agência e C.Corrente do “A” < Agência e C.Corrente do Movimento Mover dados do CONTAS CORRENTE do “A” para CONTAS CORRENTE do “B” Gravar CONTAS CORRENTE do “B” Processar ROTINA LER CONTAS CORRENTE “A” Caso Agência e C.Corrente do “A” = Agência e C.Corrente do Movimento Somar valor do Movimento ao Saldo do CONTAS CORRENTE do “A” Processar ROTINA LER MOVIMENTO FIM SELECIONAR ROTINA SEM CONTAS CORRENTES Processar ROTINA CABECALHO Mover dados do Movimento para DET1 Imprimir DET1. ROTINA LER CONTAS CORRENTE “A” Ler Contas corrente “A” SE Fim Mover High-values para Agência e C.Corrente do “A” FIM-SE ROTINA LER CONTAS CORRENTE “B”
  10. 10. Direitos Autorais – Escola de Programadores 10 Ler Contas corrente “B” SE Fim Mover High-values para Agência e C.Corrente do “B” FIM-SE ROTINA FIM Fechar CONTAS-CORRENTES “A”, “B” e “C” Exibir “FIM DE PROCESSAMENTO” Exercício 15: Desenvolver um programa, seguindo a descrição abaixo: Gravar versão atualizada do Cadastro de Conta Corrente – CADASTRO NOVO à partir do processamento dos arquivos CADASTRO e MOVIMENTO, exibindo mensagem com registros sem correspondência. Layouts dos arquivos de entrada e saída ENTRADA – CADCCA – REGISTRO: 50 POSIÇÕES AGENCIA-CCA CONTA-CCA NOME-CCA SALDO-CCA LIMITE-CCA FILLER 9(003) 9(004) X(030) S9(007)V99 9(07)V99 X(003) CHAVEREG ENTRADA – MOVCC – REGISTRO: 20 POSIÇÕES AGENCIA-MOV CONTA-MOV LANC LANCTO-MOV TIPOL-MOV FILLER 9(003) 9(004) 9(007)V99 9(001) X(003) CHAVEREG 1 –débito 2 - crédito SAIDA – CADCCN – REGISTRO: 50 POSIÇÕES AGENCIA-CCN CONTA-CCN NOME-CCN SALDO-CCN LIMITE-CCN FILLER 9(003) 9(004) X(030) S9(007)V99 9(07)V99 X(003)
  11. 11. Direitos Autorais – Escola de Programadores 11 Exercício 16: Desenvolver um programa para gerar um arquivo VSAM KSDS, à partir do arquivo de entrada abaixo. O layout do VSAM, será igual à entrada. ENTRADA: AGENCIA-CCN CONTA-CCN NOME-CCN SALDO-CCN LIMITE-CCN FILLER 9(003) 9(004) X(030) S9(007)V99 9(07)V99 X(003) SAÍDA: AGENCIA-CCN CONTA-CCN NOME-CCN SALDO-CCN LIMITE-CCN FILLER 9(003) 9(004) X(030) S9(007)V99 9(07)V99 X(003) CHAVE DO VSAM
  12. 12. Direitos Autorais – Escola de Programadores 12 Exercício 17: Atualizando o cadastro de produtos (VSAM KSDS) Fluxo do processamento LxxB0070 RELATO MOVIMENTO PRODUTOS VSAM KSDS Descrição do Processamento Atualizar o cadastro de produtos – PRODUTOS – a partir das informações contidas no arquivo MOVIMENTO (já consistido) e com base no conteúdo do campo TIPO-M. Gerar relatório – conforme layout de impressão anexo - com as ocorrências encontradas durante a execução e, ao final do processamento imprimir em pagina separada com o primeiro cabeçalho, estatísticas de processamento, conforme layout de impressão anexo. IMPORTANTE: o processamento será mensal e no relatório, deverá ser colocado o mês por extenso e ano, para identificar o mês de referência. Regras para atualização O campo TIPO-M, no arquivo MOVIMENTO indica a operação que deverá ser realizada: TIPO-M = „A‟  Alteração de dados cadastrais; TIPO-M = „I‟  Inclusão de registro de novo produto; TIPO-M = „E‟  Exclusão de registro do arquivo PRODUTOS. Ler registro do arquivo MOVIMENTO e proceder conforme segue: Se TIPO-M = „A‟ – Alteração de dados  Acessar o registro correspondente no arquivo PRODUTOS, utilizando a o conteúdo do campo CODPROD-E como chave do arquivo;  Se o registro não for encontrado no arquivo PRODUTOS, imprimir o registro do arquivo MOVIMENTO com a mensagem adequada – NAO CADASTRADO, e considerá-lo como registro rejeitado;  Se o registro for encontrado, mover os campos do registro do arquivo MOVIMENTO, com conteúdo válido, para o registro do cadastro de produtos PRODUTOS e efetuar a atualização do mesmo. Listar o registro do arquivo PRODUTOS, antes e depois da alteração com as mensagens correspondentes – ANTES ALTERACAO e APOS ALTERACAO. CONTEÚDO VÁLIDO: campos numéricos com conteúdo numérico (inclusive zeros) e alfanuméricos com conteúdo diferente de brancos.
  13. 13. Direitos Autorais – Escola de Programadores 13 Se TIPO-M = „I‟ – Inclusão de registro  Incluir novo registro no cadastro de produtos PRODUTOS, a partir do registro do arquivo MOVIMENTO, utilizando o conteúdo do campo CODPROD-M como chave. Listar o registro com a mensagem correspondente – INCL. EFETUADA.  Se já existir registro com mesma chave, listar o registro do arquivo MOVIMENTO com a mensagem correspondente – JA CADASTRADO, considerando-o como registro rejeitado. IMPORTANTE: O campo TIPO-M não faz parte do registro do arquivo PRODUTOS. Se TIPO-M = „E‟ – Exclusão do registro  Excluir o registro do arquivo de produtos PRODUTOS – utilizando o conteúdo do campo CODPROD-M como chave. Listar o registro eliminado com a mensagem correspondente – EXCL. EFETUADA.  Se não existir, no arquivo PRODUTOS, registro a ser excluído, listar o registro do arquivo MOVIMENTO, com a mensagem correspondente – NAO CADASTRADO., considerando-o como registro rejeitado. Se TIPO-M diferente de „A‟, „E‟ ou „I‟ listar o registro do arquivo MOVIMENTO com a mensagem correspondente - TIPO INVALIDO, considerando o registro como rejeitado. Ler novo registro do arquivo MOVIMENTO. Layouts dos arquivos de entrada e saída (acessíveis via COPY) Cadastro de Produtos – PRODUTOS – registro 65 posições CODPROD-P DESCRI-P LOCAL-P QTDEST-P QTDMIN-P QTDMAX-P PRECO-P X(06) X(35) X(06) 9(04) 9(04) 9(04) 9(04)v99 ENTRADA – MOVIMENTO – registro 66 posições CODPROD-M DESCRI-M LOCAL-M QTDEST-M QTDMIN-M QTDMAX-M PRECO-M TIPO-M X(06) X(35) X(06) 9(04) 9(04) 9(04) 9(04)v99 X(01) SAIDA – RELATO – imprimir 50 linhas por pagina 1...5...10....5...20....5...30....5...40....5...50....5...60....5...70....5...80....5...90 ATUALIZACAO DO CADASTRO DE PRODUTOS – MES BASE xxxxxxxxx/aa PAG. 99 IMAGEM DO REGISTRO OCORRENCIA x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x x................................................................x x.............x 1...5...10....5...20....5...30....5...40....5...50....5...60....5...70....5...80....5...90 ATUALIZACAO DO CADASTRO DE PRODUTOS – MES BASE xxxxxxxxx/aa PAG. 99 ESTATISTICA FINAL DE PROCESSAMENTO TOTAL DE REGISTROS ALTERADOS..... 999 TOTAL DE REGISTROS INCLUIDOS..... 999 TOTAL DE REGISTROS EXCLUIDOS..... 999 TOTAL DE REGISTROS REJEITADOS.... 999
  14. 14. Direitos Autorais – Escola de Programadores 14 Exercício 18: Neste programa usaremos a cláusula OCCURS. Pesquisaremos uma tabela indexada com a instrução SEARCH ALL, isso causará uma pesquisa binária e a tabela tem que estar em ordem crescente pela chave. Veja o exemplo abaixo e desenvolva outro, usando a mesma técnica.
  15. 15. Direitos Autorais – Escola de Programadores 15 Exercício 19: Desenvolver um programa usando a instrução CALL para ligarmos um programa principal a um sub-programa. As vantagens de usarmos um sub-programa é que rotinas repetitivas aos programas principais são codificadas uma única vez. Este exercício terá um programa principal que acessará uma sub-rotina para trazer os nome do mês informado, veja o fluxo abaixo.

×