diff options
Diffstat (limited to 'task1.pro')
| -rw-r--r-- | task1.pro | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/task1.pro b/task1.pro new file mode 100644 index 0000000..4a6e9ff --- /dev/null +++ b/task1.pro @@ -0,0 +1,59 @@ +% vim:set syntax=prolog: + +?- writeln("Задание 1:"). + +любит("Таня", "яблоки"). +любит("Сергей", "бананы"). +любит("Андрей", "яблоки"). +любит("Света", "карамель"). +любит("Вова", "карамель"). +любит("Таня", "халва"). +любит("Света", "апельсины"). +любит("Вова", "бананы"). + +% a) всех, кто любит бананы; +?- writeln("Любители бананов:"). +?- forall(любит(Кто, "бананы"), (write("- "), writeln(Кто))). + +% b) кто любит и халву, и яблоки; +?- writeln("Любители халвы и яблок:"). +?- forall((любит(Кто, "халва"), любит(Кто, "яблоки")), (write("- "), writeln(Кто))). + +% c) что любит Вова; +?- writeln("Что любит Вова:"). +?- forall(любит("Вова", Что), (write("- "), writeln(Что))). + +% d) что любят и Света, и Вова. +?- writeln("Что любят и Света, и Вова:"). +?- forall((любит("Света", Что), любит("Вова", Что)), (write("- "), writeln(Что))). + + + +?- writeln("\n\nЗадание 2:"). + +увлекается("Катя", "теннис"). +увлекается("Виктор", "теннис"). +увлекается("Виктор", "хоккей"). +увлекается("Андрей", "хоккей"). +увлекается("Олег", "хоккей"). +увлекается("Ольга", "теннис"). +увлекается("Катя", "шахматы"). +увлекается("Олег", "шахматы"). + +% a) каким видом спорта увлекается Андрей; +?- writeln("Увлечения Андрея:"). +?- forall(увлекается("Андрей", Чем), (write("- "), writeln(Чем))). + +% b) всех, кто играет в шахматы; +?- writeln("Любители шахмат:"). +?- forall(увлекается(Кто, "шахматы"), (write("- "), writeln(Кто))). + +% c) каким видом спорта увлекаются и Ольга, и Виктор; +?- writeln("Спорт, которым увлекаются и Ольга, и Виктор:"). +?- forall((увлекается("Ольга", Чем), увлекается("Виктор", Чем)), (write("- "), writeln(Чем))). + +% d) кто увлекается и хоккеем, и шахматами. +?- writeln("Любители хоккея и шахмат:"). +?- forall((увлекается(Кто, "хоккей"), увлекается(Кто, "шахматы")), (write("- "), writeln(Кто))). + +?- halt. |