• Viernes 19 de Abril de 2024, 01:42

Autor Tema:  Operación Mod  (Leído 8125 veces)

Victoor

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Operación Mod
« en: Viernes 26 de Octubre de 2007, 02:07 »
0
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
  1.  
  2.    if (Año mod 4 = 0) and ((Año mod 100 /= 0) or (Año mod 400 = 0)) then
  3.       return TRUE;
  4.    else
  5.       return FALSE;
  6.    end if;
  7.  

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

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Operación Mod
« Respuesta #1 en: Viernes 26 de Octubre de 2007, 18:36 »
0
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
gandalfelgris