Curso de Cobol y PowerCobol

¿Cómo utilizar PERFORM VARYING?

Capítulo 44: El bucle PERFORM VARYING

En este capítulo, terminamos con los capítulos dedicados a bucles, viendo algo similar al bucle for. Se trata de PERFORM VARYING., la estructura más compleja de todas.

Metalenguaje de PERFORM VARYING

Metalenguaje COBOL PERFORM VARYING

Construir un bucle con PERFORM VARYING

Empecemos con un ejemplo básico.

Aquí tienes un bucle que va a acceder al párrafo Operacion. Se le da un valor inicial de 15 a la variable Numero que podría ser representada como una "i", que es lo que siempre se suele poner en los bucles for. A esta variable, se le especifica un incremento, en este caso, que sea de 1 en 1, pero pueden ser incrementos mayores. Finalmente, con UNTIL se le indica donde debe terminar.

⁠⁠       IDENTIFICATION DIVISION.
       PROGRAM-ID. Capitulo44.

       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.
       77  Numero PIC 999.

       PROCEDURE DIVISION.

       Inicio.
       PERFORM Operacion VARYING Numero FROM 15 BY 1 UNTIL Numero > 25
       STOP RUN.
       
       Operacion.
       DISPLAY Numero.

       END PROGRAM Capitulo44.
015
016
017
018
019
020
021
022
023
024
025
⁠⁠       IDENTIFICATION DIVISION.
       PROGRAM-ID. Capitulo44.

       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.
       77  Numero1 PIC 999.
       77  Numero2 PIC 999.

       PROCEDURE DIVISION.

       Inicio.
       PERFORM MuestraNumero1 THROUGH MuestraNumero2
       WITH TEST AFTER
       VARYING Numero1 FROM 15 BY 5 UNTIL Numero2 > 100

       STOP RUN.

       MuestraNumero1.
           DISPLAY Numero1.

       MuestraNumero2.
           DISPLAY Numero2.
           ADD 10 TO Numero2.

       END PROGRAM Capitulo44.

En el PERFORM, con VARYING Numero1 FROM 15, le asignamos a esa variable el valor de 15. Eso es lo que se muestra en la primera línea de la consola. Gracias al THROUGH, cada vuelta, va a los dos párrafos (esto vimos anteriormente como funcionaba). Cuando muestra el valor de Numero2, todavía es 0, ya que no se le ha asignado aún un valor. Se hará en la siguiente línea.

Con VARYING 15 BY 5 lo que hace, es ir incrementando el valor de 15 en 5 cada vuelta, por eso, el siguiente resultado en la consola, es 20. Cuando llega al segundo párrafo, vale 10. Así hasta que Numero2 valga 100.

Valor del párrafo 1: 015
Valor del párrafo 2: 000
Valor del párrafo 1: 020
Valor del párrafo 2: 010
Valor del párrafo 1: 025
Valor del párrafo 2: 020
Valor del párrafo 1: 030
Valor del párrafo 2: 030
Valor del párrafo 1: 035
Valor del párrafo 2: 040
Valor del párrafo 1: 040
Valor del párrafo 2: 050
Valor del párrafo 1: 045
Valor del párrafo 2: 060
Valor del párrafo 1: 050
Valor del párrafo 2: 070
Valor del párrafo 1: 055
Valor del párrafo 2: 080
Valor del párrafo 1: 060
Valor del párrafo 2: 090
Valor del párrafo 1: 065
Valor del párrafo 2: 100

Comentarios

Si te quedan dudas sobre el temario, sobre Cobol, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.

Programación Fácil YouTube

Suscríbete

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.