Novacreations

Desarollando Software

Enigma de la viuda v1.0

Ejemplo de como resolver un problema lógico con Prolog

[prolog]
predicates
hermanaMenor(integer, integer, integer, integer, integer)
hermanaMayor(integer, integer, integer, integer, integer)
checaHermana(symbol, integer, integer)
restart(symbol)
salida
start

clauses
start:-write(“——— Enigma de la viuda v1.0 ———“), nl, nl,
write(“¿Cual es el resultado de la multiplicacion delas edades? “), readint(M),
write(“¿La mayor tiene ojos verdes? ( y / n )? “), readLn(RES),
write(“¿Cual es el número de la casa de enfrente? “), readint(C), checaHermana(RES, M, C).

checaHermana(RES, M, C):- RES=”y”, hermanaMayor(1, 1, 1, M, C).
checaHermana(RES, M, C):- RES=”n”, hermanaMenor(1, 1, 1, M, C).

hermanaMayor(X, Y, Z, M, _):- X=M, Y=M, Z=M, salida.

hermanaMayor(X, Y, Z, M, C):- X>Y, X>Z, Y>=Z, X*Y*Z=M, X+Y+Z=C,
write(“Las edades son:”), nl,
write(“Primera Hija: “, X),nl,
write(“Segunda Hija “, Y),nl,
write(“Tercera Hija “, Z), nl, fail.

hermanaMayor(X, Y, Z, M, C):- X<=M, X2=X+1, hermanaMayor(X2, Y, Z, M, C). hermanaMayor(1, Y, Z, M, C):- Y<=M, Y2=Y+1, hermanaMayor(1, Y2, Z, M, C). hermanaMayor(1, 1, Z, M, C):- Z<=M, Z2=Z+1, hermanaMayor(1, 1, Z2, M, C). hermanaMenor(X, Y, Z, M, _):- X=M, Y=M, Z=M, salida. hermanaMenor(X, Y, Z, M, C):- X=Y, X>=Z, Y>=Z, X*Y*Z=M, X+Y+Z=C,
write(“Las edades son:”), nl,
write(“Primera Hija: “, X),nl,
write(“Segunda Hija “, Y),nl,
write(“Tercera Hija “, Z), nl, fail.

hermanaMenor(X, Y, Z, M, C):- X<=M, X2=X+1, hermanaMenor(X2, Y, Z, M, C). hermanaMenor(1, Y, Z, M, C):- Y<=M, Y2=Y+1, hermanaMenor(1, Y2, Z, M, C). hermanaMenor(1, 1, Z, M, C):- Z<=M, Z2=Z+1, hermanaMenor(1, 1, Z2, M, C). salida:-write("¿Otra vez ( y / n )? "), readln(R), restart(R). restart(R):-R="n", write("Gracias por utilizar este programa"). restart(R):-R="y", start. goal start, nl. [/prolog]




Subscribe to email feed



La fábrica de softw

La Fábrica de Software de la Dirección de Innovación y ...

Administradores de A

Durante años aplicación ES File Explorer era la mejor y ...

Apoyo del Conacyt a

El Consejo Nacional de Ciencia y Tecnología (Conacyt), como parte ...

Microsoft Surface St

Esta semana Microsoft anuncio la existencia de su nueva PC ...

Incuba tu proyecto c

¡Buscamos nuevas tecnologías! Si tu proyecto es seleccionado Telcel te otorgará ...

Las 10 funciones de

  Java 8 incluye nueva funcionalidad que nos permite tener un ...

Como usar una funci

Usar una función hash para encriptar una contraseña no es ...

Cómo escribir códi

Nunca supongas a la malicia lo que puede ser explicado ...

Las 114 preguntas de

¿Tienes una entrevista de trabajo en puerta para un posición Java? ...

Believe in technolog

Ziff Davis Publishing es la más grande editorial de contenidos ...