Qué significa
Error al ejecutar en la línea 3
No se puede dividir entre cero. El divisor valía 0 al llegar aquí. Revisa de dónde sale ese valor, o pregunta antes: Si divisor <> 0 Entonces ... FinSi
Dividir entre cero no tiene resultado. Jaguar se detiene en la línea de la división y te dice que el divisor valía 0 justo en ese momento. Lo mismo pasa con MOD, que calcula el residuo de una división: 10 MOD 0 tampoco existe.
El programa puede estar bien para casi todos los datos y fallar solo cuando alguien escribe un 0, o cuando un cálculo anterior deja el divisor en 0.
Ejemplos y cómo arreglarlos
El divisor llega en 0
Algoritmo dividir
Leer b
Escribir 10 / b
FinAlgoritmo
Error al ejecutar en la línea 3
No se puede dividir entre cero. El divisor valía 0 al llegar aquí. Revisa de dónde sale ese valor, o pregunta antes: Si divisor <> 0 Entonces ... FinSi
Pregunta antes de dividir y avisa si el valor no sirve:
Algoritmo dividir
Leer b
Si b <> 0 Entonces
Escribir 10 / b
SiNo
Escribir "No se puede dividir entre cero"
FinSi
FinAlgoritmo
MOD entre cero
Algoritmo residuo
Escribir 10 MOD 0
FinAlgoritmo
Se arregla igual: asegura que el número de la derecha de MOD no sea cero.
Un promedio sin datos
Un caso muy común: promediar cuando no hubo ningún dato, porque el contador quedó en 0.
Algoritmo promedio
suma <- 0
cuenta <- 0
Leer c
Mientras c <> -1 Hacer
suma <- suma + c
cuenta <- cuenta + 1
Leer c
FinMientras
Si cuenta = 0 Entonces
Escribir "Sin datos"
SiNo
Escribir "Promedio: ", suma / cuenta
FinSi
FinAlgoritmo
Por qué aparece
- La persona escribió 0 donde iba el divisor.
- Un contador que sirve de divisor nunca avanzó, porque no hubo datos.
- Una resta deja el divisor en 0:
x / (a - b)cuandoaybson iguales. - El divisor es una variable que se usa antes de recibir su valor real.
Cómo evitarlo
Antes de cualquier división cuyo divisor venga de un dato o de un cálculo, pregunta con un Si divisor <> 0. Y piensa en los datos «raros»: el cero, el vacío, el valor más chico. Los retos de Jaguar traen casos ocultos con esos valores límite justo para eso.
Preguntas frecuentes
¿Dividir entre cero da infinito?
En matemáticas no tiene resultado, y en pseudocódigo es un error. Jaguar no da infinito: se detiene y te muestra la línea.
¿Qué es MOD?
Es el residuo de una división: 10 MOD 3 da 1, porque 10 entre 3 es 3 y sobra 1. Sirve, por ejemplo, para saber si un número es par: n MOD 2 = 0.