Prolog - VISUAL PROLOG CONSULTA

   
Vista:

VISUAL PROLOG CONSULTA

Publicado por Jonaae (1 intervención) el 26/06/2015 22:49:15
estoy creando un menu , la opcion que he colocado es ingresar un numero y ver si es positivo , negativo o cero, el programa solo lee hasta positivo mas no verifica si es negativo o cero .. cual seria mi error?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
domains
i=integer
n=symbol
c=char
 
 
predicates
	main	nondeterm verifica  nummayor palabra
	nondeterm repite
	nondeterm opcion(c)
	ingresar(i)
	%escribe(n)
clauses
main:-	repite,write("Menu Principal"),nl,nl,
	write("1. verifica"),nl,
	write("2. palabra"),nl,
	write("3. nummayor"),nl,
        write("Ingrese una opcion: "),readchar(P),write(P),nl,
        opcion(P),fail.
 
opcion('1'):-verifica.
opcion('2'):-palabra .
opcion('3'):-nummayor,write("Fin"),exit.
 
verifica:- write("VERIFICA"),nl,
	       ingresar(A),
	       A>0,
	       write("EL NUMERO  ",A," ES POSITIVO"),nl,
 
               A<0,
               write("EL NUMERO  ",A," ES NEGATIVO"),nl,
 
               A=0,
               write("EL NUMERO  ",A," ES CERO"),nl.
 
 
	ingresar(X):- write("Ingresa Numero: "),readint(X),nl.
 
repite.
repite:-repite.
 
 
goal
main,
readln(_).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Prolog
- Código fuente de Prolog
- Cursos de Prolog
- Temas de Prolog
información
Códigos de Prolog
- Resolver Sudokus
- Juego Tres en raya
- Ejercicios resueltos

VISUAL PROLOG CONSULTA

Publicado por José (8 intervenciones) el 28/06/2015 12:04:54
Hola jonaae:
No he utilizado Visual prolog,.

En swi prolog seria algo así:

numero(X,Y) :- X > 0 , Y = 'POSITIVO'.
numero(X,Y) :- X < 0 , Y = 'NEGATIVO'.
numero(X,Y) :- X == 0, Y = 'NULO'.

En definitiva lo que te quería decir, es que toda la regla 'verifica' esta con ',' dicho de otra forma, como sabes AND, y así siempre da false
numero1(X,Y) :- X > 0 , Y = 'POSITIVO', X < 0 , Y = 'NEGATIVO', X == 0, Y = 'NULO'. % = false

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar