51430

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

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

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

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

Русский

2014-02-11

119.5 KB

8 чел.

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

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

Отчет по лабораторной работе №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


 

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

2236. Расчет величин, характеризующих силовой энергетический трансформатор и его режимы работы 302.89 KB
  СИЛОВОЙ ЭНЕРГЕТИЧЕСКИЙ ТРАНСФОРМАТОР И ОСНОВНЫЕ ИНЖЕНЕРНЫЕ ЗАДАЧИ, РЕШАЕМЫЕ С ПОМОЩЬЮ ЕГО ТЕОРИИ. УСЛОВИЯ И ПРАКТИЧЕСКИЕ МЕТОДЫ АНАЛИЗА РАБОТЫ ТРАНСФОРМАТОРА НА ПОТРЕБИТЕЛЬСКОЙ ПОДСТАНЦИИ. ЗАВИСИМОСТЬ МАГНИТНОЙ ИНДУКЦИИ В СЕРДЕЧНИКЕ ОТ ТОКА ПЕРВИЧНОЙ ОБМОТКИ. СОПРОТИВЛЕНИЯ ТРАНСФОРМАТОРА В РЕЖИМАХ ХОЛОСТОГО ХОДА И КОРОТКОГО ЗАМЫКАНИЯ.
2237. Исследование теоретико-методологических аспектов позиционирования бренда 768.83 KB
  Проанализировать методы и процесс позиционирования бренда; дать оценку состояния бренда предприятия (на примере ОАО Эдельвейс), разработать рекомендации по управлению позиционированием бренда.
2238. Математическая физика 1.55 MB
  Единичное ступенчатое воздействие. Импульсное воздействие. Гармоническое (синусоидальное) воздействие.
2239. Автоматизированный электропривод подачи токарного станка 628.47 KB
  Выбор сглаживающего дросселя. Определение коэффициента передачи и постоянных времени силовых элементов. Расчет статических характеристик САУ. Построение структурно-динамической схемы и синтез регуляторов.
2240. Строительство водопропускного сооружения 1012.54 KB
  Климатические условия района строительства. Строительство русла канала механизированным способом. Состав строительных операций и объемы земляных работ. Обеспечение строительных объектов бетонной смесью. Транспортировка и укладка бетонной смеси. Строительство перепада. Технологический расчет строительства водопропускного сооружения.
2241. Технико–экономический анализ деятельности предприятия 130.29 KB
  Анализ выполнения плана по производственной программе и производственной базе. Анализ трудоемкости ТО-1 по видам работ. Анализ влияния статей себестоимости на общую сумму затрат. Анализ влияния ТЭП на выполнение плана по перевозкам.
2242. Микропроцессорные средства и системы автоматизации и управления 1.32 MB
  Целью курсовой работы по курсу Микропроцессорные средства и системы автоматизации и управления является закрепление знаний по основным разделам курса, приобретение навыков и развития способности студентов в разработки схем управления объектом на базе микропроцессоров.
2243. Расчет электромагнита постоянного тока 1.13 MB
  В данной курсовой работе нам следует проанализировать, насколько эффективно используется сталь электромагнита, сделать соответствующие выводы и предложения по рациональному использованию магнита.
2244. Інженерний аналіз характеристик надійності машин та обладнання 1.04 MB
  Коротка характеристика і умови роботи агрегату (вузла) в цілому та основних видів сполучень. Характеристика конструктивно-технологічних особливостей зміцнювальної (відновлювальної) деталі. Аналіз причин, обґрунтування, визначення та описання провідного виду зношення сполученої поверхні деталі. Визначення статистичних характеристик повного ресурсу сполучення за вихідною масовою інформацією.