% брат (Имя1, Имя2) %Человек с именем Имя1 является братом человеку с именем
%Имя2, если он мужчина, и они оба дети одних родителей
брат (Имя1, Имя2) : мужчина(Имя1), дети_одних_родителей(Имя1, Имя2), not(Имя1=Имя2).
% сестра (Имя1, Имя2) %Человек с именем Имя1 является сестрой человеку с именем %Имя2, если она жечшина, и они оба дети одних родителей сестра(Имя1,Имя2):женшина(Имя1),дети_одних_родителей(Имя1,Имя2),
not(Имя1=Имя2).
%дядя (Имя1, Имя2) - Человек с именем Имя1 является дядей % человеку с именем Имя2, если он брат одного из
% родителей челозека с именем Имя2.
дядя(Имя1,Имя2) :- брат(Имя1,ИмяЗ), родитель(ИмяЗ,Имя2).
% тетя(Имя1,Имя2) - Человек с именем Имя1 является тетей % человеку с именем Имя2, если он сестра одного из
%родителей человека с именем Имя2.
тетя (Имя1, У1мя2) :- сестра (Имя1,ИмяЗ) ,родитель (ИмяЗ,Имя2) .
/■к-к-к + кккк-к-кк* к -kk-kkkkkkk-kk-kk к ** + + ****- + ***+*****■*/
% дети_одних_родителей(Имя1,Имя2) % Учеловека с именем Имя1 и человека
% с именем Имя2 есть общий родитель.
дети одних_родителей {Имя1, Ямя2 ) :.—
родитель ( Род,Имя1), !,родитель(Род,Имя2) .
% предок(Имя1,Имя21 - Человек с именем Имя1 является % предком человеку с именем Имя2.
предок(Имя1,Имя21:-родитель(Имя1,Имя2).
предок(Имя1, Имя2):-родитель(Имя1, ИмяЗ),предок(Имя3, Имя2).
Ъпотомок(Имя1,Имя2) - Человек с именем Имя1 является
% потомком человеку с именем Имя2.
потомок(Имя1,Имя2):-предок(Имя2,Имя1).
Факты для базы знаний "Родственные отношения" Определяются факты папа, мама, мужчина, женщина
% папа(Имя1,Имя2) - человек с именем Имя1 является папой % человеку с именем Имя2.
папа ("Игорь","Юра"). %чтобы писать имена с большой папа("Игорь","Даша"). %буквы, необходимо заключать их папа("Игорь","Саша"). %вкавычки, иначе ЭВМ воспримет папа("Игорь","Миша"). %их как переменные, папа("Игорь","Оля") . папа ( "Вася","Юля") . папа("Вася","Толя").
папа("Иван","Игорь"). папа("Иван","Вася"). папа("Иван","Ира").
% мама (Имя 1,Имя 2) - человек с именем Имя1 являетсямамой
% человеку с именем Имя2.
мама ("Мария" , "Юра").
мама("Мария","Даша").
мама("Мария","Саша") .
мама("Мария","Миша") .
мама("Мария" , "Оля").
мама("Вера" , "Юля").
мама("Вера", "Толя") .
мама("Агафья","Игорь").
мама("Агафья","Вася" ) .
мама("Агафья","Ира") .
/ + + ** + ****** + ** + ***************** + ****** + ■»-*****/
% мужчина (Имя) - человек с именем Имя является мужчиной мужчина("Игорь"). мужчина("Юра") мужчина("Саша").
мужчина ("Миша") мужчина("Вася"). мужчина("Иван"). мужчина("Толя"). I********** ************ ************************ ^
% женщина (Имя) - человек с именем Имя является женщиной
^ A*************.*********** w ******************** ^
женщина("Мария"). женщина("Даша"). женщина("Оля"). женщина("Вера"). женщина("Юля"). женщина("Агафья"). женщина("Ира").
/*---- Конецпрограммы "Родственные отношения" --- */
Разбор программы предоставляем читателю.
2.2. Базазнаний "Школа"
Рассмотрим базу знаний из школьной жизни. Пусть вбазе имеются факты вида:
оценка (<фамилия>,<предмет>,<балл>).
Например, база может содержать следующий набор фактов об оценках:
оценка (Иванова,литература,5). оценка (Иванова,математика,5). оценка (Иванова,музыка,5). оценка (петров,физика,4). оценка (петров,химия,3). оценка (петров,литература,5). оценка (васечкин,литература,2). оценка (васечкин,музыка,4). оценка (васечкин,физика,5).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.