Curso de COBOL desde cero

Las rutinas PERFORM y los bucles de COBOL

Capítulo 10: Párrafos o rutinas con PERFORM

En este capítulo empezamos con las rutinas, también conocidas como párrafos, las cuales nos van a permitir alterar el flujo de ejecución de COBOL, el cuál va normalmente de arriba a abajo.

¿Qué son las rutinas?

Las rutinas son bloques de código que podemos llamar cuando queramos. Estas tienen gran parecido a las funciones de otros lenguajes de programación, aunque no son exactamente lo mismo.

En el siguiente código puedes ver alterado el flujo de ejecución normal de COBOL gracias a las rutinas:

IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-10.
					
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
					
PROCEDURE DIVISION.
					
RUTINA01.
	DISPLAY "Esta es la rutina 1."
	PERFORM RUTINA03.
					
RUTINA02.
	DISPLAY "Esta es la rutina 2."
	PERFORM RUTINA04.
					
RUTINA03.
	DISPLAY "Esta es la rutina 3."
	PERFORM RUTINA02.
					
RUTINA04.
	DISPLAY "Esta es la rutina 4."
	DISPLAY "Finaliza el programa."
					
	STOP RUN.
END PROGRAM CAPITULO-10.

Resultado

El programa se ejecuta en la RUTINA01. Se imprime su DISPLAY y gracias al PERFORM podemos dar un salto en el flujo de ejecución del programa e ir de la RUTINA01 a la RUTINA03 sin ejecutar la RUTINA02.
En la RUTINA03 se da el salto a la RUTINA02, esta vez si que se ejecuta y esta dice que se ejecute la RUTINA04.
Puesto que la RUTINA04 no tiene ningún PERFORM, el programa termina ahí.

Esta es la rutina 1.
Esta es la rutina 3.
Esta es la rutina 2.
Esta es la rutina 4.
Finaliza el programa.

En caso de que el número sea menor que 50, el programa no ejecuta el código del IF.

Podemos añadir un bloque de código alternativo añadiendo un ELSE, el cual se ejecutará en caso de que no se cumpla la condición del IF.

¿Cómo crear un bucle infinito en COBOL?

Gracias a los PERFORM podemos hacer un programa "infinito", pero no del todo, ya que nos devolverá este error: libcob: test.cbl: 18: stack overflow, possible PERFORM depth exceeded que nos dice que posiblemente se excedió la profundidad del PERFORM y detendrá la ejecución para evitar un colapso de la máquina. Mira un ejemplo:

IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-10.
					
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
					
PROCEDURE DIVISION.
					
RUTINA01.
	DISPLAY "Esta es la rutina 1."
	PERFORM RUTINA03.
					
RUTINA02.
	DISPLAY "Esta es la rutina 2."
	PERFORM RUTINA03.
					
RUTINA03.
	DISPLAY "Esta es la rutina 3."
	PERFORM RUTINA02.
					
STOP RUN.
END PROGRAM CAPITULO-10.

Puedes ver el resultado de este programa en el vídeo, no lo pongo aquí ya que la salida de la consola es muy larga.

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.