#prolog #visual-prolog
#пролог #visual-prolog
Вопрос:
итак, я создал этот простой AI-код, и я хочу добавить в свой код простую математику умножения, чтобы это было сделано следующим образом
domains
bonus = integer
predicates
crew_db(string, integer, string) - nondeterm (o,o,o)
absensi_crew(string, symbol) - nondeterm (o,o), (i,i)
posisi_terdaftar(string, symbol) - nondeterm (o,o), (i,i)
terima_gaji(string) - nondeterm (o,i,i,o)
tambah_bonus(bonus,bonus,bonus) - procedure (i,i,o)
clauses
crew_db("Muhammad", 18, "Bantaeng, 28 November 1998").
crew_db("Irvan", 20, "Bantaeng, 28 November 1998").
crew_db("Jaya", 21, "Bantaeng, 28 November 1998").
absensi_crew("Muhammad",aman).
absensi_crew("Irvan",aman).
absensi_crew("Jaya",tidak).
posisi_terdaftar("Muhammad",aktif).
posisi_terdaftar("Irvan",aktif).
posisi_terdaftar("Jaya",tidak).
terima_gaji(TesBebasTernyata):-
crew_db(TesBebasTernyata,_,_),
absensi_crew(TesBebasTernyata,aman),
posisi_terdaftar(TesBebasTernyata,aktif).
tambah_bonus(A,B,Bonus):-
Bonus=A*B.
goal
terima_gaji(Crew_Yang_Di_Gaji_Bulan_Ini),tambah_bonus(45000,2,Bonus).
и когда я проверяю цели моего Prolog, он завершается с ошибкой и указывает неправильное количество аргументов в шаблоне потока
Комментарии:
1. Какую систему Prolog вы используете?
Ответ №1:
В предложении
terima_gaji(TesBebasTernyata):-
crew_db(TesBebasTernyata,_,_),
absensi_crew(TesBebasTernyata,aman),
posisi_terdaftar(TesBebasTernyata,aktif).
у вас есть
crew_db(TesBebasTernyata,_,_)
но ваши факты таковы
crew_db("Muhammad", 18, "Bantaeng, 28 November 1998").
crew_db("Irvan", 20, "Bantaeng, 28 November 1998").
crew_db("Jaya", 21, "Bantaeng, 28 November 1998").
Обратите внимание, что предложения имеют три позиции аргумента, в то время как ваши факты имеют четыре.
Изменить
crew_db(TesBebasTernyata,_,_)
Для
crew_db(TesBebasTernyata,_,_,_)
Поскольку у меня нет Visual Prolog, я не могу проверить этот ответ с помощью Visual Prolog.
Комментарии:
1. я новичок в prolog: D
2. @IrvanJaya Вы можете принять это как ответ, нажав на галочку слева от этого ответа, а также проголосовать «за», нажав на треугольник, направленный вверх. 🙂