
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.