«No se puede dividir entre cero»

Este error aparece cuando una división, o un MOD, tiene un divisor que vale 0 al llegar a esa línea. Se evita preguntando antes si el divisor es distinto de cero.

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) cuando a y b son 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.

Sigue aprendiendo