Pular para o conteúdo principal
Módulo 3 · Lição 1 de 25/10 no curso~12 min
Lições do módulo (1/2)

Parágrafos e PERFORM

No COBOL, a modularidade e a estruturação lógica do código dentro de PROCEDURE DIVISION não ocorrem por meio de funções ou métodos, mas sim por meio de Parágrafos e da instrução PERFORM.

Definição de parágrafos

Um parágrafo é uma seção de código rotulada que começa com um nome na coluna 8 (Área A) e termina com um ponto ., seguido por uma sequência de instruções na coluna 12 (Área B).

COBOL
DISPLAY-MESSAGE.
    DISPLAY "This is a paragraph!".

Os parágrafos permitem dividir programas potencialmente muito longos em blocos reutilizáveis ​​e autodocumentados.

Executando Parágrafos com PERFORM

A instrução PERFORM invoca e executa um parágrafo e, em seguida, retorna o controle para a instrução imediatamente após a instrução PERFORM.

COBOL
PROCEDURE DIVISION.
MAIN-PROCEDURE.
    DISPLAY "Starting program...".
    PERFORM PROCESS-DATA.
    DISPLAY "Ending program.".
    STOP RUN.

PROCESS-DATA.
    DISPLAY "Processing data in memory...".

Na listagem acima:

  1. O DISPLAY dentro de MAIN-PROCEDURE é executado.
  2. PERFORM PROCESS-DATA ramifica a execução para o parágrafo PROCESS-DATA.
  3. Assim que o parágrafo PROCESS-DATA terminar, a execução retorna para MAIN-PROCEDURE para imprimir "Finalizando programa". e pare usando STOP RUN..

Experimente você mesmo

Exercício#cobol.m3.l1.e1
Tentativas: 0Carregando…

Defina um parágrafo chamado DISPLAY-TOTAL que imprima 'TOTAL IS DONE' usando DISPLAY e chame-o dentro de MAIN-PROCEDURE usando PERFORM antes de parar o programa.

Carregando editor…
Mostrar dica

Escreva PERFORM DISPLAY-TOTAL. na coluna 12 e abaixo do bloco MAIN-PROCEDURE declare o DISPLAY-TOTAL. parágrafo na coluna 8.

Solução disponível após 3 tentativas

Exercício#cobol.m3.l1.e2
Tentativas: 0Carregando…

Chame dois parágrafos sequencialmente, primeiro INITIALIZE-DATA e depois PROCESS-DATA, dentro do bloco MAIN-PROCEDURE.

Carregando editor…
Mostrar dica

Insira as duas instruções PERFORM em ordem sequencial na coluna 12.

Solução disponível após 3 tentativas