• Domingo 15 de Diciembre de 2024, 13:47

Autor Tema:  Especificacion De Un Tad!!!  (Leído 1737 veces)

kino

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Especificacion De Un Tad!!!
« en: Jueves 18 de Octubre de 2007, 17:06 »
0
wenas soy nuevo en el foro pero necesito ayuda urgente con un tad que me esta dando muxos kebraderos de cabeza... las operaciones que me estan dando problemas son la division y modulo

estoy usando maude... pero la notacion es muy sencilla, simplemente no estoy seguro de reglas tan estrictas que debo seguir como x ej: cero / cero = infinito o indefinido? he de aclarar que se trabaja solo con naturales... o esPar(cero) ?

todas las operaciones me funcionan pero m surgen dudas como stas... aki dejo el codigo(señalo en negrita mis dudas):

fmod NATURAL is
   protecting BOOL .
   sort N .
   sort NoN .
   subsort NoN < N .

   op Negativo : -> NoN .
   op Infinito : -> NoN .
   op Indefinido : -> NoN .

   op division : N N -> N .
   op div : N N -> N .
   op modulo : N N -> N .
   op mitad : N -> N .
   op esPar : N -> Bool .

   vars n m : N .

   eq division(cero, cero) = Indefinido .
   eq division(n, cero) = Infinito .
   eq division(cero, sucesor(n)) = cero .
   eq division(n, m) = if (esMayor(m, n)) then Indefinido else div(n, m) fi .
   eq div(n, m) = if (esMenorIgual(suma(m, m), n))and(esMayor(n, m)) then suma(sucesor(cero), (div(resta(n,m), m))) else sucesor(cero) fi .
  eq modulo(cero, cero) = Indefinido .
   eq modulo(n, n) = cero .
   eq modulo(n, m) = if esMayor(n, m) then resta(n, producto(division(n, m), m)) else Indefinido fi .
   eq mitad(n) = division(n, sucesor(sucesor(cero))) .
   eq esPar(sucesor(cero)) = false .
  eq esPar(cero) = true .
   eq esPar(n) = if (esIgual(modulo(n, sucesor(sucesor(cero))), cero)) then true else false fi .
   eq esPar(Indefinido) = false .
   eq esPar(Infinito) = false .

endfm



gracias x la ayuda.... un saludo

octopus22

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Especificacion De Un Tad!!!
« Respuesta #1 en: Viernes 19 de Octubre de 2007, 15:47 »
0
WHAT THE FUCK???? :blink:
No tengo idea de como se definen Tipos abstractos de datos en C, lo hacia en Pascal pero esto es muy diferente al parecer...
NO ENTIENDO! &lt;_&lt;  Peguenme un tiro en la Frente +_+

fucking user! xD