Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用prolog的十二生肖程序代码没有给出输出_Prolog - Fatal编程技术网

使用prolog的十二生肖程序代码没有给出输出

使用prolog的十二生肖程序代码没有给出输出,prolog,Prolog,我的编译成功。 当我给出以下输入时,仍然没有给出输出:find_sign(d(6,51982)) %域 %日期=d(日、月、年) %dm=da(日,周一) %日、月、年=整数 %符号=符号 %谓词 %黄道带月(星座,dm,dm) %查找符号(日期) %条款 黄道十二宫月(水瓶座,大年(20,1),大年(18,2))。 黄道十二宫月(双鱼座,大年(19,2),大年(20,3))。 黄道十二宫月(白羊座,大年(21,3),大年(19,4))。 黄道十二宫月(金牛座,大年(20,4),大年(20,5)

我的编译成功。
当我给出以下输入时,仍然没有给出输出:
find_sign(d(6,51982))

%域
%日期=d(日、月、年)
%dm=da(日,周一)
%日、月、年=整数
%符号=符号
%谓词
%黄道带月(星座,dm,dm)
%查找符号(日期)
%条款
黄道十二宫月(水瓶座,大年(20,1),大年(18,2))。
黄道十二宫月(双鱼座,大年(19,2),大年(20,3))。
黄道十二宫月(白羊座,大年(21,3),大年(19,4))。
黄道十二宫月(金牛座,大年(20,4),大年(20,5))。
黄道十二宫月(双子座,大田(21,5),大田(21,6))。
十二生肖月(巨蟹座,大年(22,6),大年(22,7))。
黄道十二宫月(狮子座,大年(23,7),大年(22,8))。
黄道十二宫月(处女座,大(23,8),大(22,9))。
十二生肖月(天秤座,大田(23,9),大田(23,10))。
十二生肖月(天蝎座,大田(24,10),大田(21,11))。
十二生肖月(人马座,大年(22,11),大年(21,12))。
黄道十二宫月(摩羯座,da(22,12),da(19,1))。
查找符号(日、月、年):-
十二生肖月(星座,da,Day2,Mon2)),
Mon2=Mon,
第二天,
格式('生肖是~w~n',[sign])。
查找符号(日、月、年):-
十二生肖月(星座,Day,Day,Mon1),da(,Day)),
周一=周一,
第>=第1天,
格式('生肖是~w~n',[Sign])。
查找符号(日期):-
格式(“~w:指定的日期不正确,[Date])。

我得到的结果是:黄道带星座是金牛座。看起来您的程序略有不同。您能告诉我您是如何使用swi prolog运行该程序的,以及输入是什么吗?当我运行此代码时,我没有收到任何输出。在加载带有
['program.pl']
的程序后,仅
查找符号(d(6,51982))
%domains
%date = d(day,mon,year)
%dm = da(day,mon)
%day , mon ,year = integer
%sign = symbol

%predicates
%zodiac_month(sign,dm,dm)
%find_sign(Date)

%Clauses
zodiac_month(aquarius,da(20,1),da(18,2)).
zodiac_month(pisces,da(19,2),da(20,3)).
zodiac_month(aries,da(21,3),da(19,4)).
zodiac_month(taurus,da(20,4),da(20,5)).
zodiac_month(gemini,da(21,5),da(21,6)).
zodiac_month(cancer,da(22,6),da(22,7)).
zodiac_month(leo,da(23,7),da(22,8)).
zodiac_month(virgo,da(23,8),da(22,9)).
zodiac_month(libra,da(23,9),da(23,10)).
zodiac_month(scorpio,da(24,10),da(21,11)).
zodiac_month(sagittarius,da(22,11),da(21,12)).
zodiac_month(capricorn,da(22,12),da(19,1)).

find_sign(d(Day,Mon,_Year)) :-
   zodiac_month(Sign,da(_,_),da(Day2,Mon2)),
   Mon2 = Mon,
   Day =< Day2,
   format('Zodiac sign is ~w~n', [Sign]).
find_sign(d(Day,Mon,_Year)) :-
   zodiac_month(Sign,da(Day1,Mon1),da(_,_)),
   Mon1 = Mon,
   Day >= Day1,
   format('Zodiac Sign is ~w~n', [Sign]).
find_sign(Date) :-
   format('~w: Incorrect Date specified', [Date]).