51430

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

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

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

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

Русский

2014-02-11

119.5 KB

7 чел.

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

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

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


 

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

19129. Компоновка и геометрические характеристики ТВС 608 KB
  ЛЕКЦИЯ 9 Компоновка и геометрические характеристики ТВС Для удобства перегрузок топлива транспортировки и организации охлаждения твэлы объединяются в ТВС. Основные требования к ТВС заключаются в следующем: обеспечение установленного физическим расчетом ре
19130. ГЕОМЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ ТВС И ОБЪЕМНЫЙ СОСТАВ РАБОЧЕЙ ЯЧЕЙКИ 320 KB
  ЛЕКЦИЯ 10 ГЕОМЕТРИЧЕСКИЕ ХАРАКТЕРИСТИКИ ТВС И ОБЪЕМНЫЙ СОСТАВ РАБОЧЕЙ ЯЧЕЙКИ В предыдущей лекции представлена методика определения диаметра твэлов и числа ячеек для их размещения в ТВС. Целью настоящей лекции является компоновка ТВС расчет ее геометрических х
19131. ТЕПЛОГИДРАЛИЧЕСКИЙ РАСЧЕТ ТВС 529.5 KB
  ЛЕКЦИЯ 11 ТЕПЛОГИДРАЛИЧЕСКИЙ РАСЧЕТ ТВС Теплогидравлический расчет ТВС реактора на быстрых нейтронах Рассмотрим ТВС реактора на быстрых нейтронах распределение тепловыделения в активной части которой подчиняется закону косинуса. Пусть даны геометрия ТВС
19132. ДОПУСТИМАЯ МОЩНОСТЬ ТВЭЛА И ТВС 374.5 KB
  ЛЕКЦИЯ 12 ДОПУСТИМАЯ МОЩНОСТЬ ТВЭЛА И ТВС Допустимая мощность твэлов и ТВС в стационарных условиях эксплуатации определяется: предельными температурами эксплуатации оболочки твэла и элементов конструкции ТВС: предельными температурами эксплуатации
19133. АНАЛИЗ НАПРЯЖЕННО-ДЕФОРМИРОВАННОГО СОСТОЯНИЯ ТВЭЛОВ ЭНЕРГЕТИЧЕСКИХ РЕАКТОРОВ 536 KB
  Лекция 13 АНАЛИЗ НАПРЯЖЕННОДЕФОРМИРОВАННОГО СОСТОЯНИЯ ТВЭЛОВ ЭНЕРГЕТИЧЕСКИХ РЕАКТОРОВ Основы расчета на прочность Расчет на прочность важнейший этап конструирования элементов активной зоны ядерного реактора: на его основе выбираются их основные размеры ге
19134. Приближенные методы анализа напряжений и деформаций в оболочке в стационарных условиях эксплуатации твэла 663 KB
  ЛЕКЦИЯ 14 Приближенные методы анализа напряжений и деформаций в оболочке в стационарных условиях эксплуатации твэла В стационарных режимах эксплуатации при наличие зазора на оболочку действует давление равное разнице давлений теплоносителя и смеси газов внутри т
19135. Устойчивость оболочек твэлов энергетических реакторов 177 KB
  ЛЕКЦИЯ 15 Устойчивость оболочек твэлов энергетических реакторов Проблема устойчивости оболочек твэлов актуальна для реакторов с повышенным давлением теплоносителя а именно для реакторов с водяным и газовым охлаждением. Потеря устойчивости возможна при наличие за...
19136. Глобальные проблемы человечества. Мировое потребление энергии. Источники энергии. Экологические проблемы 1.33 MB
  Лекция 1 Глобальные проблемы человечества. Мировое потребление энергии. Источники энергии. Экологические проблемы. Преимущества ядерного топлива. Текущее состояние и тенденции развития ядерной энергетики в мире. 1.1. Глобальные проблемы человечества Глобальными п...
19137. История развития ядерной отрасли в мире и России. Текущее состояние ядерной энергетики в России. Предприятия ядерного топливного цикла 725 KB
  Лекция 2 История развития ядерной отрасли в мире и России. Текущее состояние ядерной энергетики в России. Предприятия ядерного топливного цикла. Планы на развитие ядерной энергетики в России. Проблемы ядерной энергетики. 2.1. История развития ядерной отрасли в мире и ...