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


 

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

84219. БОЛЕЗНИ ЭНДОКРИННОЙ СИСТЕМЫ. САХАРНЫЙ ДИАБЕТ 26.47 KB
  САХАРНЫЙ ДИАБЕТ Определение. Осложнения Сахарный диабет сахарная болезнь заболевание обусловленное относительной или абсолютной недостаточностью инсулина. Выделяют следующие виды сахарного диабета: спонтанный вторичный диабет беременных и системный субклинический. Спонтанный вид сахарного диабета включает диабет I типа инсулинзависимый и диабет II типа инсулиннезависимый.
84220. БОЛЕЗНИ ЭНДОКРИННОЙ СИСТЕМЫ. ЗАБОЛЕВАНИЯ ЩИТОВИДНОЙ ЖЕЛЕЗЫ 23.89 KB
  ЗАБОЛЕВАНИЯ ЩИТОВИДНОЙ ЖЕЛЕЗЫ Определение зоба. Классификация Зоб Хашимото зоб Риделя Среди заболеваний щитовидной железы различают зоб струма тиреоидиты и опухоли. Зоб струма заболевание щитовидной железы при котором приисходит диффузное диффузный зоб или узловатое узловатый зоб ее увеличение. Также выделяют диффузноузловатый смешанный зоб.
84221. УЛЬТРАСТРУКТУРНАЯ ПАТОЛОГИЯ КЛЕТКИ 29.59 KB
  В электронном микроскопе определяются многочисленные структуры органеллы необходимые для метаболизма клетки. Такие клетки известны как онкоциты они имеют обильную цитоплазму ядро в них часто отодвинуто к периферии. уменьшение его размеров сопровождается снижением белковосинтетической функции клетки при голодании болезнях печени старении.
84222. ПОВРЕЖДЕНИЯ.ПАРЕНХИМАТОЗНЫЕ ДИСТРОФИИ 24.17 KB
  Среди механизмов ведущих к развитию характерных для дистрофий изменений различают инфильтрацию декомпозицию фанероз извращенный синтез и трансформацию. Извращенный синтез это синтез в клетках или в тканях веществ не встречающихся в них в норме. К ним относятся: синтез аномального белка амилоида в клетке и образование аномальных белковополисахаридных комплексов амилоида в межклеточном веществе синтез белка алкогольного гиалина гепатоцитом синтез гликогена в эпителии узкого сегмента нефрона при сахарном диабете. При набухании...
84223. ПАРЕНХИМАТОЗНО-БЕЛКОВЫЕ ДИСТРОФИИ 25.32 KB
  При гиалиновокапельной дистрофии в цитоплазме появляются крупные гиалиноподобные белковые глыбки и капли сливающиеся между собой и заполняющие тело клетки. В основе этой дистрофии лежит коагуляция белков цитоплазмы с выраженной деструкцией ультраструктурных элементов клетки фокальный коагуляционный некроз. В основе гиалиновокапельной дистрофии нефроцитов лежит недостаточность вакуолярнолизосомного аппарата эпителия проксимальных и дистальных извитых канальцев в норме реабсорбирующего белки.
84224. ПАРЕНХИМАТОЗНЫЕ ДИСТРОФИИ (ЖИРОВЫЕ, УГЛЕВОДНЫЕ) 25.09 KB
  Причины жировой дистрофии разнообразны: кислородное голодание; тяжелые или длительно протекающие инфекции; авитаминозы; одностороннее питание. При нарушении связи белков с липидами декомпозиции возникает деструкция мембранных структур клетки и в цитоплазме появляются свободные липоиды являющиеся морфологическим субстратом паренхиматозной жировой дистрофии. Микроскопические признаки жировой дистрофии: любой жир растворяется в обычных растворителях окраска гематоксилином и эозином.
84225. СТРОМАЛЬНО-СОСУДИСТЫЕ БЕЛКОВЫЕ ДИСТРОФИИ 31.33 KB
  К стромальнососудистым диспротеинозам относят: мукоидное набухание; фибриноидное набухание; гиалиноз; амилоидоз. Амилоидоз отличается от этих процессов тем что в состав образующихся белковополисахаридных комплексов входит аномальный не встречающийся в норме фибриллярный белок который синтезируется специальными клетками амилоидобластами. Амилоид в гистологических препаратах очень похож на гиалин и выглядит в световом микроскопе как бесструктурный гомогенный плотный стекловидный розового цвета белок.
84226. СТРОМАЛЬНО-СОСУДИСТЫЕ ДИСТРОФИИ 24.36 KB
  Причина первичного идиопатического ожирения неизвестна. Виды вторичного ожирения: алиментарное; церебральное; эндокринное; наследственное. По внешним проявлениям различают универсальный симметричный тип ожирения который делят на три подтипа: верхний; средний; нижний. По превышению массы тела больного выделяют четыре степени ожирения: I степень ожирения избыточная масса тела составляет до 30; II степень ожирения избыточная масса тела составляет до 50; III степень ожирения избыточная масса тела составляет до 99; ...
84227. СМЕШАННЫЕ ДИСТРОФИИ НАРУШЕНИЕ ОБМЕНА ХРОМОПРОТЕИДОВ (ЭНДОГЕННЫЕ ПИГМЕНТАЦИИ). НАРУШЕНИЕ ОБМЕНА 30.75 KB
  Обмен железа в норме регулируется так чтобы общая сумма железа в организме поддерживалась в пределах узкого диапазона. Увеличение общего количества железа в органе наблюдается при гемосидерозе и гемохроматозе. Анаболический ферритин образуется из железа всасывающегося в кишечнике а катаболический из железа гемолизированных эритроцитов. Билирубин конечный продукт катаболизма порфиринового кольца молекулы гемоглобина он не содержит ни железа ни белка.