Programación General > ADA
Operación Mod
(1/1)
Victoor:
Hola, tube que hacer un trabajo para clase en el que averiguar si un año es bisiesto o no, investigando por hay he llegado a resolver el ejercicio correctamente y el codigo seria algo asi.
--- Código: Text --- if (Año mod 4 = 0) and ((Año mod 100 /= 0) or (Año mod 400 = 0)) then return TRUE; else return FALSE; end if;
La duda es que no tengo muy claro que es lo que hace la operacion mod y me gustaria que alguien me lo explicara, y de paso por que cuando en vez de usar la operacion mod uso la de dividir "/" no funciona :S.
Saludos ;)
gandalfelgris:
Hola Victor,
La operación mod devuelve el resto de la division de dos números. Asi 16 mod 4 = 0 pues 0 es el resto de la division de 16 entre 4. Sin embargo el operador division / devuelve el resultado de la división de dos números. Asi 16/4=4 y 17/4=4.25. Por esta razon cuando utilizas la operación division en lugar de mod en un codigo es necesario antes hacer un casting (o cambio de tipo) de las variables, pues ada no hace los casting automaticamente. Si no otra solución posible para utilizar el operador division en ese codigo y que te funcionara seria en ver de comparar con 0 comparar con 0.0. De esta manera no existiria incompatibilidad de tipos entre los dos lados de la desigualdad.
Espero haberte aclarado el tema. Sin más solo me resta decirte que tuve se escribe con v y no con b
Un saludo
Navegación
Ir a la versión completa