Есть 4 студента, узнать кто сдаст лабу, кто пойдет на дискотеку и т.д - Prolog
Формулировка задачи:
Привет. У нас появился новый предмет, на Visual Prolog. Ну так вот, в чем дело. Есть лаб1, в данной лабе есть 3 задания, 2 из которых я сделал, но начались проблемы в 3-м задании.
Задание 1.1 Сделал
Лаб 1.2 Сделал
Лаб 1.3. Помогите решить, нужно уже завтра сдавать лабу.
- Иван, Елена, Татьяна, Игорь - студенты.
-Студент получает зачет, если он отчитается по лабораторным занятиям.
-Иван отчитается по лабораторным занятием только вместе с Игорем.
-Елена и Татьяна отчитались по лабораторным занятиям и пойдут вечером на дискотеку.
-Если Игорь пойдет на дискотеку вместе с Татьяной, то он отчитается по лабораторным занятиям.
-Игорь пойдет вечером на дискотеку, если у него будет свободное время.
-Сегодня вечером Игорь свободен.
Сформировать следующие запросы:
-Кто пойдет вечером на дискотеку?
-Кто получит зачет?
Листинг программы
- predicates
- red(symbol)
- nondeterm likes(symbol,symbol).
- CLAUSES
- red(rose).
- likes(ramazan,dogs).
- likes(baha,motocycle).
- likes(tati,food).
- likes(vova,smoke).
- likes(vlad,juce).
- likes(tair,auto).
- likes(anna,home).
- likes(aziz,book).
- likes(aidana,helocopter).
- likes(kolya,box).
- likes(azamat,computer).
- goal
- %likes(bill,dogs).
- %likes(baha,motocycle).
- %likes(tati,food).
- %likes(vova,smoke).
- %likes(vlad,juce).
- %likes(tair,auto).
- %likes(anna,home).
- %likes(aziz,book).
- %likes(aidana,helocopter).
- %likes(kolya,box).
- likes(azamat,computer).
Листинг программы
- predicates
- green(symbol).
- red(symbol).
- flower(symbol).
- nondeterm likes(symbol,symbol).
- CLAUSES
- green(color).
- red(color).
- flower(symbol).
- likes(klara,green).
- likes(sasha,red).
- likes(timur,red).
- likes(timur,green).
- likes(sasha,flower).
- goal
- %likes(klara,What).
- %likes(sasha,What).
- likes(timur,What).
Решение задачи: «Есть 4 студента, узнать кто сдаст лабу, кто пойдет на дискотеку и т.д»
textual
Листинг программы
- domains
- ivan,igor,elena,tatyana=symbol.
- predicates
- zachet(symbol).
- diskoteka(symbol).
- vremya(symbol).
- segodnya(symbol).
- nondeterm sdal(symbol,symbol).
- nondeterm poidet(symbol,symbol).
- nondeterm svoboden(symbol,symbol).
- CLAUSES
- zachet(lab).
- diskoteka(dance).
- vremya(time).
- segodnya(vecherom).
- sdal(igor,lab).
- sdal(ivan,lab)if sdal(igor,lab).
- sdal(elena,lab).
- sdal(tatyana,lab).
- svoboden(igor,vecherom).
- poidet(elena,dance)if sdal(elena,lab).
- poidet(tatyana,dance)if sdal(tatyana,lab).
- poidet(igor,dance)if svoboden(igor,vecherom).
- goal
- sdal(Who,lab).
- %poidet(Who,dance).
Объяснение кода листинга программы
- Домен: ivan,igor,elena,tatyana=symbol.
- Предлоги: zachet(symbol)., diskoteka(symbol)., vremya(symbol)., segodnya(symbol).
- Неопределенные переменные:
- sdal(symbol,symbol).
- poidet(symbol,symbol).
- svoboden(symbol,symbol).
- Условия:
- zachet(lab).
- diskoteka(dance).
- vremya(time).
- segodnya(vecherom).
- Условные предложения:
- sdal(ivan,lab) если sdal(igor,lab).
- sdal(elena,lab).
- sdal(tatyana,lab).
- svoboden(igor,vecherom) если sdal(igor,lab).
- poidet(elena,dance) если sdal(elena,lab).
- poidet(tatyana,dance) если sdal(tatyana,lab).
- poidet(igor,dance) если svoboden(igor,vecherom).
- Цель: sdal(Who,lab).
- Запросы:
- Кто пойдет на дискотеку? (подразумевается, что это не указано в коде)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д