Fundamentos de programación/Manejo de errores/Evaluación
| Evaluación de la lección 12 |
| Manejo de errores |
Ejercicio #1
[editar]Conteste las siguientes preguntas en base a los conocimiento adquiridos durante el estudio de la lección.
Ejercicio #2
[editar]Escriba un programa en pseudocódigo que realice las tareas especificadas a continuación:
| « |
Escriba una función que calcule el factorial de un número entero. La función debe regresar un número negativo (por ejemplo -1) para indicar un error cuando se le pide calcular un factorial mayor a 10 o cuando se le pide calcular el factorial de un número negativo o cero. |
» |
| Solución propuesta |
|---|
// Función para calcular el factorial de un número.
entero subrutina factorial (entero número)
entero resultado_parcial := 1
entero i
si número <= 10 y número >= 1 entonces
desde i := 1 hasta número hacer
resultado_parcial := resultado_parcial * i
fin_desde
sino
resultado_parcial := -1
fin_si
regresar resultado_parcial
fin_subrutina
|
Ejercicio #3
[editar]Escriba un programa en pseudocódigo que realice las tareas especificadas a continuación:
| « |
Capturar dos números desde el teclado y regresar el resultado de la división entre ambos. Usar el mecanismo de manejo de excepciones descrito en la lección para identificar si el usuario ingresa un cero como divisor o un texto que no corresponde a un número y reportar un mensaje de error significativo. Puede suponer que existe una biblioteca llamada
Suponga que la función |
» |
| Solución propuesta |
|---|
// Cargando las bibliotecas necesarias.
cargar ("cadenas.bib")
cargar ("es_texto.bib")
cargar ("funciones_útiles.bib")
cadena texto_primer_número
cadena texto_segundo_número
entero primer_número
entero segundo_número
entero resultado
// Variables para controlar los errores
// encontrados durante la ejecución.
lógico error_convirtiendo_el_primer_número := falso
lógico error_convirtiendo_el_segundo_número := falso
lógico error_realizando_la_división := falso
// Capturar el primer número
nueva_linea ()
desplegar_en_pantalla ("Primer número: ")
texto_primer_número := leer_texto ()
// Capturar el segundo número
nueva_linea ()
desplegar_en_pantalla ("Segundo número: ")
texto_segundo_número := leer_texto ()
// Convertir el texto capturado en
// números para realizar las operaciones
intentar
primer_número := texto_a_entero (texto_primer_número )
atrapar NúmeroInválido:
error_convirtiendo_el_primer_número := verdadero
fin_intentar
intentar
segundo_número := texto_a_entero (texto_segundo_número)
atrapar NúmeroInválido:
error_convirtiendo_el_segundo_número := verdadero
fin_intentar
// Calcular la división
si error_convirtiendo_el_primer_número = falso y
error_convirtiendo_el_segundo_número = falso entonces
intentar
resultado := primer_número / segundo_número
atrapar DivisiónPorCero:
error_realizando_la_división := verdadero
fin_intentar
fin_si
// Imprimir el resultado en pantalla.
nueva_linea ()
si error_convirtiendo_el_primer_número = falso y
error_convirtiendo_el_segundo_número = falso y
error_realizando_la_división = falso entonces
desplegar_en_pantalla ("Resultado: ")
desplegar_en_pantalla ( entero_a_texto (resultado) )
sino
si error_realizando_la_división = verdadero entonces
desplegar_en_pantalla ("No fue posible calcular al división porque el segundo número es cero.")
sino
si error_convirtiendo_el_primer_número = falso entonces
desplegar_en_pantalla ("El valor ingresado como primer número no corresponde a un número entero.")
fin_si
si error_convirtiendo_el_segundo_número = falso entonces
desplegar_en_pantalla ("El valor ingresado como segundo número no corresponde a un número entero.")
fin_si
fin_si
fin_si
|
| Proyecto: Fundamentos de programación |
| Anterior: Lectura de la lección 12 — Evaluación — Siguiente: Cuarta evaluación parcial |