LA SENTENCIA PERFORM SE UTILIZA PARA TRANSFERIR EL CONTROL A UNO O MAS PROCESOS PARA DESPUES REGRESAR EL CONTROL A LA SIGUIENTE INSTRUCCION A EJECUTAR.
EXISTEN 4 FORMATOS PARA EL PERFORM LOS CUALES SON:
PERFORM BASICO
PERFORM FRASE TIMES
PERFORM FRASE UNTIL
PERFORM FRASE VARYING
PERFORM BASICO: SE EJECUTA SOLO UNA VEZ PARA PASAR A LA SIGUIENTE INSTRUCCION EJECUTABLE.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-INICIALIZAR-VAR.
010-INICIALIZAR-VAR.
MOVE ZEROES TO WS-VARIABLE.
PROCEDURE DIVISION.
PERFORM
MOVE ZEROES TO WS-VARIABLE
END-PERFORM.
PERFORM TIMES: SE EJECUTA EL NUMERO DE VECES ESPECIFICADO.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-CONTAR-DIEZ 10 TIMES.
010-CONTAR DIEZ.
COMPUTE CN-CONT = CN-CONT + 1.
PROCEDURE DIVISION.
PERFORM 10 TIMES
COMPUTE CN-CONT = CN-CONT + 1
END-PERFORM.
PERFORM UNTIL: SE EJECUTA MIENTRAS LA CONDICION NO SEA CIERTA, PARA QUE SE EJECUTE POR LO MENOS UNA VEZ SE DEBE INCLUIR LA FRASE TEST AFTER ANTES DEL UNTIL.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-LEE-ARCH UNTIL SW-FIN-ARCH
010-LEE-ARCH.
READ ARCH
IF FS-ARCH = '10'
SET SW-FIN-ARCH TO TRUE
END-IF.
PROCEDURE DIVISION.
PERFORM UNTIL SW-FIN-ARCH
READ ARCH
IF FS-ARCH = '10'
SET SW-FIN-ARCH TO TRUE
END-IF
END-PERFORM.
PERFORM VARYING:
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-DESPLIEGA VARYING WI-NUM
FROM 1 BY 1 UNTIL WI-NUM 10
010-DESPLIEGA.
DISPLAY WI-NUM.
EXISTEN 4 FORMATOS PARA EL PERFORM LOS CUALES SON:
PERFORM BASICO
PERFORM FRASE TIMES
PERFORM FRASE UNTIL
PERFORM FRASE VARYING
PERFORM BASICO: SE EJECUTA SOLO UNA VEZ PARA PASAR A LA SIGUIENTE INSTRUCCION EJECUTABLE.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-INICIALIZAR-VAR.
010-INICIALIZAR-VAR.
MOVE ZEROES TO WS-VARIABLE.
PROCEDURE DIVISION.
PERFORM
MOVE ZEROES TO WS-VARIABLE
END-PERFORM.
PERFORM TIMES: SE EJECUTA EL NUMERO DE VECES ESPECIFICADO.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-CONTAR-DIEZ 10 TIMES.
010-CONTAR DIEZ.
COMPUTE CN-CONT = CN-CONT + 1.
PROCEDURE DIVISION.
PERFORM 10 TIMES
COMPUTE CN-CONT = CN-CONT + 1
END-PERFORM.
PERFORM UNTIL: SE EJECUTA MIENTRAS LA CONDICION NO SEA CIERTA, PARA QUE SE EJECUTE POR LO MENOS UNA VEZ SE DEBE INCLUIR LA FRASE TEST AFTER ANTES DEL UNTIL.
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-LEE-ARCH UNTIL SW-FIN-ARCH
010-LEE-ARCH.
READ ARCH
IF FS-ARCH = '10'
SET SW-FIN-ARCH TO TRUE
END-IF.
PROCEDURE DIVISION.
PERFORM UNTIL SW-FIN-ARCH
READ ARCH
IF FS-ARCH = '10'
SET SW-FIN-ARCH TO TRUE
END-IF
END-PERFORM.
PERFORM VARYING:
PROCEDURE DIVISION.
000-CONTROL.
PERFORM 010-DESPLIEGA VARYING WI-NUM
FROM 1 BY 1 UNTIL WI-NUM 10
010-DESPLIEGA.
DISPLAY WI-NUM.
1 comentarios:
Bien útil lo explicado en este blog.
La sentencia PERFORM es una de las mas usadas e importantes en este lenguaje de programación. No aplicarla bien nos ocasiona problemas de calculo, acceso, etc.
Solo quería aportar, mencionando lo referente al párrafo THRU del PERFORM
Es algo que me he encontrado, sobretodo, en programas muy “antiguos”.
Aquí les dejo un enlace al respecto.
Saludos y felicitaciones por el espacio, muy util.
http://www.escobol.com/modules.php?name=Sections&op=viewarticle&artid=20
Publicar un comentario