1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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.
|