Вы находитесь на странице: 1из 4

Tcnica de Programao Aplicada I Modularizaco

Programa Exemplo: Programa que utiliza um mdulo chamado SOMAR para somar os contedos de duas variveis e colocar o resultado na terceira varivel e mostra o resultado da soma na tela.

Programa (PGM15MOD) que utiliza o mdulo SOMAR para somar


IDENTIFICATION DIVISION. PROGRAM-ID. PGM15MOD. AUTHOR. TAKATO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DATA DIVISION. WORKING-STORAGE SECTION. 01 VAR1 PIC 9(2) VALUE 20. 01 VAR2 PIC 9(3) VALUE 100. 01 VAR3 PIC 9(5) VALUE ZEROS. PROCEDURE DIVISION. INICIO. CALL SOMAR USING VAR1 VAR2 VAR3. DISPLAY ERASE. DISPLAY RESULTADO DA SOMA = AT 1020. DISPLAY VAR3 AT 1042. STOP RUN.

Programa Mdulo

SOMAR.

Este programa (Mdulo) dever ser salvo com nome SOMAR.CBL O mdulo SOMAR recebe 3 variveis, soma os contedos de duas primeiras variveis e coloca o resultado na terceira varivel. Primeira varivel - PIC 9((2) Segunda varivel - PIC 9(3) Terceira vairvel - PIC 9(5) Obs.: As variveis devem ter as mesmas caractersticas (PICs) do programa que est usando via CALL. IDENTIFICATION DIVISION. PROGRAM-ID. SOMAR. AUTHOR. TAKATO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA. DATA DIVISION. WORKING-STORAGE SECTION. 77 RESULTADO PIC 9(5) VALUE ZEROS.

LINKAGE SECTION. 01 CAMP1 PIC 9(2). 01 CAMP2 PIC 9(3). 01 CAMP3 PIC 9(5). PROCEDURE DIVISION USING CAMP1 CAMP2 CAMP3. INICIO. COMPUTE RESULTADO = CAMP1 + CAMP2. MOVE RESULTADO TO CAMP3. EXIT PROGRAM. Observaes: 1-) LINKAGE SECTION - nesta seo devem ser definidas todas as varivies (parmetros) que so passados para esse mdulo atravs do comando CALL. O importante a caracterstica (picture) de cada item. Os nomes e a ordem podem ser diferentes. A ordem dos parmetros (variveis) estabelecida na entrada PROCEDURE DIVISION USING ........ Neste exemplo, observa-se que o CAMP1 corresponde a VAR1, CAMP2 a VAR2 e CAMP3 a VAR3, pela seqncia definida no comando CALL SOMAR USING VAR1 VAR2 VAR3 e pela entrada PROCEDURE DIVISION USING CAMP1 CAMP2 CAMP3. 2-) O mdulo SOMAR dever ter esse nome no PROGRAM-ID e no nome-do-arquivo ao salvar (gravar). 3-) No mdulo, o programa deve terminar por EXIT PROGRAM e no por STOP RUN para que o controle volte para o programa chamador e no para o Sistema Operacional. 4-) Os dois programas precisam ser compilados. A execuo s ser atravs do primeiro programa (programa que possui CALL).

Programa exemplo paras fixao de uso de MENU e mdulos DUMMY para execuo do MENU.

MENU RECEBIMENTO DE MERCADORIA - ENTRADA SAIDA DE MERCADORIA - SAIDA ENCERRAR ESCOLHA A OPCAO: ( X )

Programa MENU IDENTIFICATION DIVISION. PROGRAM-ID. PGMEMU. AUTHOR. TAKATO. ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. DECIMAL-POINT IS COMMA.

DATA DIVISION. WORKING-STORAGE SECTION. 77 OPC PIC X(1) VALUE SPACE. 77 BRANCO PIC X(20) VALUE SPACES. SCREEN SECTION. 01 TELA. 02 BLANK SCREEN. 02 LINE 05 COLUMN 30 VALUE MENU. 02 LINE 10 COLUMN 10 VALUE (1) RECEBIMENTO DE MERCADORIA - ENTRADA. 02 LINE 12 COLUMN 10 VALUE (2) SAIDA DE MERCADORIA - SAIDA. 02 LINE 15 COLUMN 10 VALUE (9) ENCERRAR. 02 LINE 20 COLUMN 20 VALUE ESCOLHA A OPCAO: . 2 LINHA-OPC LINE 20 COLUMN 40 PIC X TO OPC. 01 LIMPA. 02 LINE 20 COLUMN 50 PIC X(20) FROM BRANCO. PROCEDURE DIVISION. INICIO. PERFORM ROT-PROCESSA UNTIL OPC = 9. STOP RUN. ROT-PROCESSA. DISPLAY TELA. PERFORM WITH TEST AFTER UNTIL OPC = 1 OR 2 OR 9 ACCEPT LINHA-OPC IF OPC = 1 OR 2 OR 9 DISPLAY LIMPA ELSE DISPLAY DIGITE 1 OU 2 OU 9 AT 2050 END-IF END-PERFORM. EVALUATE OPC WHEN 1 CALL ENTRADA WHEN 2 CALL SAIDA END-EVALUATE.

Programa exemplo DUMMY para ENTRADA Esse programa, aps a digitao, dever ser salvo como ENTRADA.CBL e compilado. IDENTIFICATION DIVISION. PROGRAM-ID. ENTRADA. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION.

INICIO. DISPLAY CHEGOU NO MODULO ENTRADA AT 2430. STOP . EXIT PROGRAM. Programa exemplo DUMMY para SAIDA Esse programa, aps a digitao, dever ser salvo como SAIDA.CBL e compilado. IDENTIFICATION DIVISION. PROGRAM-ID. SAIDA. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. INICIO. DISPLAY MODULO SAIDA EM DESENVOLVIMENTO AT 2430. STOP . EXIT PROGRAM. Tipos de CALL: Dinmico e Esttico Call Esttico inclui (agrega) o mdulo ao programa. O programa e o(s) mdulo(s) so carregados juntos na memria. Essa tcnica ocupa mais memria e a alterao no qualquer mdulo exige uma recompilao do programa. Call Dinmico nessa tcnica, o mdulo s ser carregado na memria em tempo de execuo do mdulo pelo programa. Essa modalidade ocupa menos memria (o mdulo no incorporado ao programa) e as alteraes nos mdulos podero ser efetuadas sem a necessidade de recompilao dos programas que os utilizam. H uma diferena na maneira de codificar o comando CALL. No Call Esttico, a chamada feita colocando-se o nome do mdulo entre as aspas duplas: CALL SOMAR USING ......... No Call Dinmico, a chamada feita utilizando se um nome de varivel, onde a varivel ter o nome do mdulo a ser utilizado. A varivel definida na WORKING-STORAGE SECTION Exemplo: 01 MODULO PIC X(8) VALUE SOMAR (varivel da Working) CALL MODULO USING ...... (MODULO o nome da varivel que contm o nome do mdulo SOMAR definido na Working) Observao: O Call Dinmico melhor que Call Esttico; assim, o NetExpress converte, automaticamente, o Call Esttico para o Call Dinmico.

Вам также может понравиться