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


 

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

44983. Принцип управления. Классификация систем управления 153 KB
  Принцип управления. Классификация систем управления. Существует фундаментальный принцип управления. Мы формируем алгоритм управления формирование управляющего воздействия на ОР.
44984. Алгоритмы и законы регулирования 44 KB
  Алгоритмы и законы регулирования Совокупность предписаний по которым формируется управляющее воздействие на объект регулирования назыв. законом регулирования упр.
44987. Математическое описание звеньев и САУ. Типовые звенья 23 KB
  Типовые звенья. Получение модели начинается с разбиения системы на звенья по математическому описанию причем звенья направленного действия передают сигнал в одном направлении и изменение состояния этого звена не влияет на состояние предшествующего звена работающего на его вход. Типовые звенья САУ различают по виду их передаточной функции и виду дифференициалного уравнения. Позиционными звеньями называются такие звенья в передаточной функции которых многочлены NS и MS имеют свободный член равный 1 т.
44988. Типовые воздействия в системе и реакция на них 410 KB
  Весовой фей звена наз. YS = WSXS Kt = yt если XS=1→ Xt=δt δt идиализированный импульс с бесконечно большой амплитудой Весовая фия – реакция звена на единичный импульс. Смысл Kt – переходный процесс на выходе звена при подаче на его вход единичного импульса. реакция звена на единичное ступенчатое воздействие т.
44989. Устойчивость систем управления. Первый метод Ляпунова 87.5 KB
  Устойчивость систем управления. Устойчивость – свойство системы возвращаться в исходный или близкий к нему установившийся режим после всякого выхода из него в результате какоголибо воздействия. когда установившийся режим вообще отсутствует дается общее определение устойчивости: Система устойчива если её выходная величина остаётся ограниченной в условиях действия на систему ограниченных по величине возмущений. Если в характеристическом уравнении системы имеется хотя бы один нулевой корень или хотя бы одна пара чисто мнимых корней λii1 =...
44990. Качество как экономическая категория и объект управления 800.06 KB
  Понятие качества. Значение повышения качества. Качество как объект управления и основные концепции менеджмента качества. Академия проблем качества России.
44991. Управление затратами на обеспечения качества 741.03 KB
  Этапы формирования и виды затрат на качество продукции. Информационная база анализа затрат на качество продукции. Методы анализа затрат на качество продукции. Экономическая эффективность новой продукции.