我正在尝试做一些告诉我黄道十二宫的事情,如果今年是闰年这一切都在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,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.
这是我的错误
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 are not together in the source-file
% c:/Users/Alaenvargut/Desktop/a.pl compiled 0.00 sec, 1 clauses
请帮帮我
抱歉mi bad english:S
答案 0 :(得分:0)
你应该试试
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_bisiesto
proceso(s):-!.