Curso de Cobol y PowerCobol

Control de datos introducidos con COBOL

Capítulo 42: Manejo de errores

Continuamos con el código de la calculadora del capítulo anterior. Tiene un fallo sin gran importancia, que solucionaremos aquí.

Creemos un pequeño control de datos para la variable Numero, ya que el usuario, a menudo, es susceptible de caer misteriosamente en fallos que los desarrolladores a veces no somos capaces de apreciar, no entra en nuestra lógica (es solo un chiste malo, pero cierto).

Qué pasa si el usuario pone una letra en lugar de un número. Es algo que puede ocurrir, sin querer o intencionadamente.

Para salir introduce 'salir' en la consola.
Para multiplicar pulsa INTRO.

INTRODUCE UN NUMERO.
Q
LA TABLA DEL 00:
00 * 002 = 0000
00 * 004 = 0000
00 * 006 = 0000
00 * 008 = 0000
00 * 010 = 0000
00 * 012 = 0000
00 * 014 = 0000
00 * 016 = 0000
00 * 018 = 0000
00 * 020 = 0000
Para salir introduce 'salir' en la consola.
Para multiplicar pulsa INTRO.

Vaya, nos hace la tabla del 0. Esto es porque al no introducir un número, nos deja los ZEROS que hay inicialmente en la variable. Al menos, el programa resiste al usuario y compila.

Hagamos un IF en el párrafo IntroduceNumero que le diga al usuario que es bob*, digo, que se ha equivocado y que tiene que introducir un número.

⁠⁠       IDENTIFICATION DIVISION.
       PROGRAM-ID. Capitulo42.

       DATA DIVISION.
       FILE SECTION.
       WORKING-STORAGE SECTION.
       77  Numero PIC 99 VALUE ZEROS.
       77  Multiplicador PIC 999 VALUE ZEROS.
       77  Resultado PIC 9999 VALUE ZEROS.
       77  Salida PIC XXXXX VALUE SPACES.

       PROCEDURE DIVISION.

       Inicio.
       DISPLAY "Para salir introduce 'salir' en la consola.".
       DISPLAY "Para multiplicar pulsa INTRO.".
       ACCEPT Salida.
       IF Salida = "salir"
           PERFORM Finalizar
       ELSE
           PERFORM ReiniciaPrograma.
           PERFORM IntroduceNumero.
           PERFORM MostrarTabla.

       Finalizar.
       STOP RUN.

       ReiniciaPrograma.
       MOVE 0 TO Multiplicador.

       IntroduceNumero.
       DISPLAY "INTRODUCE UN NUMERO.".
       ACCEPT Numero.
       IF Numero IS ZEROS THEN
           DISPLAY "Disculpe, debe introducir un número"
           PERFORM Inicio
       END-IF.

       MostrarTabla.
       DISPLAY "LA TABLA DEL " Numero ":".
       PERFORM Calculos 10 TIMES.
       PERFORM Inicio.

       Calculos.
       ADD 1 TO Multiplicador.
       COMPUTE Resultado = Numero * Multiplicador.
       DISPLAY Numero " * " Multiplicador " = " Resultado.

       END PROGRAM Capitulo42.

Esta vez, el programa tiene respuesta al error. Le hemos dicho que si el número es igual a ZEROS, que le avise al usuario de que se ha equivocado y que vuelva al párrafo de Inicio

Esta es una pequeña muestra del control de errores en COBOL, seguiremos viendo más cosas.


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.