From fbd4bb21c7d15de39273159b2e9364faadb26af4 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Tue, 9 Apr 2024 12:13:24 +0400 Subject: =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=BE=D0=B5=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- preptast.pro | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 preptast.pro (limited to 'preptast.pro') diff --git a/preptast.pro b/preptast.pro new file mode 100644 index 0000000..999c110 --- /dev/null +++ b/preptast.pro @@ -0,0 +1,64 @@ +% vim:set syntax=prolog: + +% Задание 1.1 +родитель("Михаил", "Алексей"). +родитель("Евдокия", "Алексей"). +родитель("Алексей", "Феодор"). +родитель("Алексей", "Софья"). +родитель("Алексей", "Иоанн"). +родитель("Мария", "Феодор"). +родитель("Мария", "Софья"). +родитель("Мария", "Иоанн"). +родитель("Алексей", "Пётр"). +родитель("Наталья", "Пётр"). +родитель("Пётр", "Анна"). +родитель("Пётр", "Елизавета"). +родитель("Екатерина", "Анна"). +родитель("Екатерина", "Елизавета"). + +% Задание 1.2 +?- writeln("Родители Петра Первого:"). +?- forall(родитель(Кто, "Пётр"), (write("- "), writeln(Кто))). +?- writeln("Дети Петра Первого:"). +?- forall(родитель("Пётр", Кто), (write("- "), writeln(Кто))). + +% Задание 2.1 +женщина("Анна"). +женщина("Мария"). +женщина("Софья"). +женщина("Евдокия"). +женщина("Наталья"). +женщина("Екатерина"). +женщина("Елизавета"). + +мужчина("Пётр"). +мужчина("Михаил"). +мужчина("Феодор"). +мужчина("Алексей"). + +% Задание 2.2 +мать(Кто, Кого) :- родитель(Кто, Кого), женщина(Кто). +отец(Кто, Кого) :- родитель(Кто, Кого), мужчина(Кто). +сын(Кто, Кого) :- родитель(Кого, Кто), мужчина(Кто). +дочь(Кто, Кого) :- родитель(Кого, Кто), женщина(Кто). + +?- writeln("Сыновья Алексея Михайловича:"). +?- forall(сын(Кто, "Алексей"), (write("- "), writeln(Кто))). + +% Задание 3.3 +бабушка(Прародитель, Потомок) :- + родитель(Прародитель, Родитель), + родитель(Родитель, Потомок), + женщина(Прародитель). + +общий_родитель(Чел1, Чел2) :- родитель(Кто, Чел1), родитель(Кто, Чел2). + +брат(Брат, Кого) :- + общий_родитель(Брат, Кого), + мужчина(Брат), + not(Брат = Кого). + % (мать(Мать, Брат), мать(Мать, Кого); отец(Отец, Брат), отец(Отец, Кого)). + +?- forall(брат(Кто, "Софья"), writeln(Кто)). + +% ?- halt. -- cgit v1.2.3