Prolog 黄道十二生肖和闰年序曲

Prolog 黄道十二生肖和闰年序曲,prolog,Prolog,我试图做一些事情,告诉我黄道带的标志,如果一年是闰年,所有这些都在序言中 一切看起来都很好,但当我尝试做cosnult时,它显示了一个错误 这是我的密码 /* 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,

我试图做一些事情,告诉我黄道带的标志,如果一年是闰年,所有这些都在序言中

一切看起来都很好,但当我尝试做cosnult时,它显示了一个错误

这是我的密码

    /* 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 is anio mod 4,
    R100 is anio mod 100,
    R400 is 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.
请帮帮我

对不起,我的英语不好,请你试试

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 is anio mod 4,
    R100 is anio mod 100,
    R400 is anio mod 400,
    ((R4 = 0, R100 \= 0); R400 = 0).
*/
proceso(s):-!.
我认为您正在完善代码:
anio
设为变量,并将
es_anio\u bisiesto
移动到
proceso:-

我修复了第一部分,但无法在第62行“帮助”中找到错误所在!!
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 is anio mod 4,
    R100 is anio mod 100,
    R400 is anio mod 400,
    ((R4 = 0, R100 \= 0); R400 = 0).
*/
proceso(s):-!.