51430

Родственные отношения

Лабораторная работа

Информатика, кибернетика и программирование

Составить родословную своей семьи, использовав 10-12 отношений родитель. Определить предикат пол для каждого члена семьи. Определить предикаты мать, отец, дядя, тетя, кузен, дед, внук. Определить рекурсивный предикат предок.

Русский

2014-02-11

119.5 KB

6 чел.

Московский государственный технический университет им. Н.Э. Баумана

Калужский филиал

Отчет по лабораторной работе №4

«Родственные отношения»

Выполнил: студентка группы ЭВМ-81

Щукина А.К.

Проверил: Смирнов С.Г.

Калуга, 2013

Условие варианта

1. Составить родословную своей семьи, использовав 10-12 отношений родитель. Определить предикат пол  для каждого члена семьи.

2. Определить предикаты  мать, отец, дядя, тетя, кузен, дед, внук.

3. Определить рекурсивный предикат  предок.

4. Оттранслируйте следующие утверждения в правила на Прологе:

        а) всякий, кто имеет ребенка - счастлив;

        б) всякий  Х, имеющий ребенка, у которого есть сестра, имеет двух детей.

5. Определить предикат  найти_тетю(Х) , выдающий информацию о наличии  (отсутствии) тети у личности  Х. Определить предикаты о наличии прочих родственников у личности  Х.

6. Определить предикат, дающий список всех родственников личности  Х. Переменную  Х ввести.

Родословная

Листинг программы

predicates

male(symbol)

female(symbol)

parent(symbol, symbol)

father(symbol, symbol)

mother(symbol, symbol)

son(symbol, symbol)

daughter(symbol, symbol)

uncle(symbol, symbol)

aunt(symbol, symbol)

cousin(symbol, symbol)

grandfa(symbol, symbol)

grandma(symbol, symbol)

grandson(symbol, symbol)

granddaughter(symbol, symbol)

brother(symbol, symbol)

sister(symbol, symbol)

happy(symbol)

two_child(symbol)

find_father(symbol)

find_mother(symbol)

find_son(symbol)

find_daughter(symbol)

find_uncle(symbol)

find_aunt(symbol)

find_cousin(symbol)

find_grandfa(symbol)

find_grandma(symbol)

find_grandson(symbol)

find_granddaughter(symbol)

find_brother(symbol)

find_sister(symbol)

all_family(symbol)

clauses

female("Mariya").

female("Alla").

female("Anastasiya").

female("Anna").

female("Luba").

female("Marina").

male("Nikolay").

male("Ivan").

male("Dmitriy").

male("Victor").

male("Fedor").

male("Sergey").

male("Vladimir").

male("Andrey").

 

parent("Nikolay", "Anastasiya").

parent("Nikolay", "Anna").

parent("Mariya", "Anastasiya").

parent("Mariya", "Anna").

 

parent("Ivan", "Victor").

parent("Ivan", "Fedor").

parent("Alla", "Victor").

parent("Alla", "Fedor").

 

parent("Dmitriy", "Marina").

parent("Anastasiya", "Marina").

 

parent("Victor", "Sergey").

parent("Luba", "Sergey").

 

parent("Sergey", "Vladimir").

parent("Sergey", "Andrey").

parent("Marina", "Vladimir").

parent("Marina", "Andrey").

father(P,C):- male(P), parent(P,C).

mother(P,C):- female(P), parent(P,C).

son(C,P):- male(C), parent(P,C).

daughter(C,P):- female(C), parent(P,C).

sister(S,BS):- female(S), parent(P,S), parent(P,BS), male(P), S<>BS.

brother(B,BS):- male(B), parent(P,B), parent(P,BS), male(P), B<>BS.

uncle(U,C):- male(U), parent(P,C), parent(P1,P), parent(P1,U), male(P1), U<>P.

aunt(A,C):- female(A), parent(P,C), parent(P1,P), parent(P1,A), male(P1), A<>P.

cousin(C,UA):- male(C), parent(P,C), parent(P1,P), parent(P1,UA), male(P1), P<>UA;

      female(C), parent(P,C), parent(P1,P), parent(P1,UA), male(P1), P<>UA.

grandfa(GF,C):- male(GF), parent(P,C), parent(GF,P).

grandma(GM,C):- female(GM), parent(P,C), parent(GM,P).

grandson(GS,GFM):- male(GS), parent(P,GS), parent(GFM,P).

granddaughter(GD,GFM):- female(GD), parent(P,GD), parent(GFM,P).

%sister(X,Y):- female(X), parent(Z,X), parent(Z,Y), male(Z), X<>Y.

 

happy(X):- parent(X,Y).

two_child(X):- parent(X,S), sister(S,Y).

 

find_father(X):- father(Y,X), write(X, " has father ", Y), nl;

     write(X, " hasn't father"), nl.

find_mother(X):- mother(Y,X), write(X, " has mother ", Y), nl;

     write(X, " hasn't mother"), nl.

find_son(X):- son(X,Y), write(X, " has son ", Y), nl;

     write(X, " hasn't son"), nl.

find_daughter(X):- daughter(X,Y), write(X, " has daughter ", Y), nl;

       write(X, " hasn't daughter"), nl.

find_uncle(X):- uncle(Y,X), write(X, " has uncle ", Y), nl;

    write(X, " hasn't uncle"), nl.

find_aunt(X):- aunt(Y,X), write(X, " has aunt ", Y), nl;

      write(X, " hasn't aunt"), nl.

find_cousin(X):- cousin(Y,X), write(X, " has cousin ", Y), nl;

     write(X, " hasn't cousin"), nl.

find_grandfa(X):- grandfa(Y,X), write(X, " has grandfa ", Y), nl;

      write(X, " hasn't grandfa"), nl.

find_grandma(X):- grandma(Y,X), write(X, " has grandma ", Y), nl;

      write(X, " hasn't grandma"), nl.

find_grandson(X):- grandson(Y,X), write(X, " has grandson ", Y), nl;

       write(X, " hasn't grandson"), nl.

find_granddaughter(X):- granddaughter(Y,X), write(X, " has granddaughter ", Y), nl;

         write(X, " hasn't granddaughter"), nl.

find_brother(X):- brother(Y,X), write(X, " has brother ", Y), nl;

      write(X, " hasn't brother"), nl.

find_sister(X):- sister(Y,X), write(X, " has sister ", Y), nl;

     write(X, " hasn't sister"), nl.

     

all_family(X):- write("FAMILY OF ", X), nl,

    father(F,X), write("Father: ", F), nl, not(father(F,X));

    mother(M,X), write("Mother: ", M), nl, not(mother(M,X));

    son(S,X), write("Son: ", S), nl, not(son(S,X));

    daughter(D,X), write("Daughter: ", D), nl, not(daughter(D,X));

    uncle(U,X), write("Uncle: ", U), nl,not(uncle(U,X));

    aunt(A,X), write("Aunt: ", A), nl, not(aunt(A,X));

    cousin(C,X), write("Cousin: ", C), nl, not(cousin(C,X));

    grandfa(GF,X), write("Grandfa: ", GF), nl, not(grandfa(GF,X));

    grandma(GM,X), write("Grandma: ", GM), nl, not(grandma(GM,X));

    grandson(GS,X), write("Grandson: ", GS), nl, not(grandson(GS,X));

    granddaughter(GD,X), write("Granddaughter: ", GD), nl, not(granddaughter(GD,X));

    brother(B,X), write("Brother: ", B), nl, not(brother(B,X));

    sister(S1,X), write("Sister: ", S1), nl, not(sister(S1,X)).

Результаты выполнения лабораторной

Рис.1


 

А также другие работы, которые могут Вас заинтересовать

13988. Урок. Как выбрать правильную гитару 73.5 KB
  Как выбрать правильную гитару У вас есть желание купить себе качественную гитару На первый взгляд это не проблема. Бытует мнение что тот у кого толстый бумажник имеет огромные преимущества. Узнавая все новые тонкости и мелочи в процессе выбора гитары самодовольн...
13989. Обзор музыкальной жизни Франции 19 века. Берлиоз. Франк 45 KB
  Лекция двенадцатая. Тема: Обзор музыкальной жизни Франции 19 века. Берлиоз. Франк. Начало 19 века. Первая половина. Главный жанр опера. В конце 17 века основан театр в Париже. В 30е годы складывается жанр большая опера. Джакомо Мейербер. Оперы: Робертдьявол Г
13990. История музыкальной культуры. Конспект лекций 1.32 MB
  Музыкальная культура Древнего мира История музыки это наука так как по методу она связана с логикой исторического процесса. Каждое музыкальное явление рассматривается ею в пространстве и во времени. Лишь с этих позиций мы можем объективно оценить значимость творчес
13991. Древнерусская музыкальная культура 40 KB
  3 Древнерусская музыкальная культура Развивалась она прежде всего как вокальная музыка. Истоки ее в народной русской песне. В народной песне отражалась вся жизнь народа труд быт вера и т.д.. Из самых древних песен известны колыбельные календарные песни...
13992. Особенности плана счетов бухгалтерского учета строительной организации 152.5 KB
  Строительство как отрасль экономики участвует в создании основных фондов для всех отраслей хозяйства. При изучении особенностей применения плана счетов в строительстве, следует иметь в виду, что принятие к бухгалтерскому учету возведенных основных средст
13993. Музыка. Что за прелесть эти сказки. Урок музыки в 4 классе 136.35 KB
  1. Урок музыки. 4 класс Раздел: День полный событий. Тема: Что за прелесть эти сказки Три чуда. Дидактическая цель: целенаправленно формировать способность воспринимать музыку как искусство выразительное по своей природе; расширить представления учащихся о свя...
13994. Вивчення нової пісні «Веселий музикант» слова Т.Волгіної, муз. А.Філіпенка, прослуховування пісні Українських троїстих музикантів та пісні «Ходить сон біля вікон» 16.15 KB
  Тема. Вивчення нової пісні Веселий музикант слова Т.Волгіної муз. А.Філіпенка прослуховування пісні Українських троїстих музикантів та пісні Ходить сон біля вікон. Мета. Вчити дітей словам нової пісні продовжувати роботу над формуванням вокально – хорових навичо...
13995. КОНСПЕКТЫ И МАТЕРИАЛЫ ПО МУЗЫКАЛЬНОЙ ЛИТЕРАТУРЕ ЗАРУБЕЖНЫХ СТРАН 446.5 KB
  КОНСПЕКТЫ И МАТЕРИАЛЫ ПО МУЗЫКАЛЬНОЙ ЛИТЕРАТУРЕ ЗАРУБЕЖНЫХ СТРАН IV СЕМЕСТР Импрессионизм Клод Дебюсси 18621918 Симфоническое творчество Дебюсси К. Дебюсси. Прелюдии Морис Равель 18751937 М. Равель. Болеро. Джакомо Пуччини 18581924 Дж. Пуччини. Опера Богем
13996. Конспекты уроков по музыке для детей 744.5 KB
  Программное содержание. Познакомиться с детьми вызвать у них интерес к музыкальным занятиям желание слушать музыку выполнять простейшие движения чувствовать свое тело. Материал. Красиво оформленная коробка; кукла. Ход...