Prolog zodiacal and leap year -
i'm trying tell me zodiacal sign , if year leap year of in prolog
and looks great it's shows me error when try cosnult
here code
/* 7. horóscopo horoscopo(signo,diaini,mesini,diafin,mesfin) <- son del signo signo los nacidos entre el dia ini/mesini y el diafin/mesfin */ horoscopo(aries,21,3,21,4). horoscopo(tauro,21,4,21,5). horoscopo(geminis,21,5,21,6). horoscopo(cancer,21,6,21,7). horoscopo(leo,21,7,21,8). horoscopo(virgo,21,8,21,9). horoscopo(libra,21,9,21,10). horoscopo(escorpio,21,10,21,11). horoscopo(sagitario,21,11,21,12). horoscopo(capricornio,21,12,21,1). horoscopo(acuario,21,1,21,2). horoscopo(piscis,21,2,21,3). mes(1,31,enero). mes(2,28,febrero). mes(3,31,marzo). mes(4,30,abril). mes(5,31,mayo). mes(6,30,junio). mes(7,31,julio). mes(8,31,agosto). mes(9,30,septiembre). mes(10,31,octubre). mes(11,30,noviembre). mes(12,31,diciembre). signo(dia,mes,signo) :-horoscopo(signo,d1,m1,d2,m2),((mes=m1,dia>=d1,mes(m1,d,_),dia=<d);(mes=m2,dia=<d2,dia>0)). anio_bisiesto(l) :- partition(es_anio_bisiesto,l,lin,lout), format('año bisiesto:~w~n',[lin]), format('no año bisiesto:~w~n',[lout]). corre:-write('presiona s para salir, c para continuar: '), read(z), proceso(z). proceso(c):-write('introduce tu día de nacimiento: '), read(x), write('introduce tu mes de nacimiento: '), read(y), calcula(x,y). write('introduce el año: '), read(a). es_anio_bisiesto(anio) :- r4 anio mod 4, r100 anio mod 100, r400 anio mod 400, ((r4 = 0, r100 \= 0); r400 = 0). proceso(s):-!. calcula(x,y):-write('tu signo es: '), signo(x,y,signo), write(signo),nl,corre.
and error
error: c:/users/alaenvargut/desktop/a.pl:53: full stop in clause-body? cannot redefine ,/2 warning: c:/users/alaenvargut/desktop/a.pl:62: clauses of proceso/1 not in source-file % c:/users/alaenvargut/desktop/a.pl compiled 0.00 sec, 1 clauses
please me
and sorry mi bad english :s please
you should try
proceso(c):-write('introduce tu día de nacimiento: '), read(x), write('introduce tu mes de nacimiento: '), read(y), calcula(x,y). /* write('introduce el año: '), read(a). es_anio_bisiesto(anio) :- r4 anio mod 4, r100 anio mod 100, r400 anio mod 400, ((r4 = 0, r100 \= 0); r400 = 0). */ proceso(s):-!.
i think you're refining code: make anio
variable , move es_anio_bisiesto
after proceso(s):-!.
Comments
Post a Comment