51430

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

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

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

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

Русский

2014-02-11

119.5 KB

10 чел.

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

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

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


 

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

53464. ИСПОЛЬЗОВАНИЕ ИНТЕРАКТИВНОЙ ДОСКИ НА УРОКАХ ФИЗИКИ В ФОРМИРОВАНИИ ИКТ КОМПЕТЕНТНОСТИ 30.23 KB
  Использование интерактивной доски один из самых перспективных и востребованных. Также с помощью различных программ учитель может создать компьютерную модель урока с которой затем можно работать с помощью интерактивной доски. Из практики обучения я могу предложить следующие формы работы с интерактивной доской PenBord: Активные презентации.
53465. Разработка конспекта обобщающего урока математики в 4 классе по теме Дроби 91.5 KB
  Познавательная деятельность учащихся через использование мультимедийных технологий. Разумное использование в учебном процессе наглядных средств обучения играет важную роль в развитии наблюдательности внимания речи мышления учащихся. В отличие от обычных технических средств обучения ИКТ позволяют не только насытить обучающегося большим количеством готовых строго отобранных соответствующим образом организованных знаний но и развивать интеллектуальные творческие способности учащихся. задействованы все каналы восприятия учащихся ...
53467. Использование приемов технологии РКМЧП на уроках истории 1012 KB
  На этом этапе не допускается критика ваших сочинений мы просто попытаемся определить что вы уже знаете в конце урока вы сами определите какие ошибки были вами допущены. Обычно в начале урока предлагаю обучающимся выделить из предложенных мной утверждений верные и неверные.
53468. Использование проектной игры на уроках ИЯ 28 KB
  Методы есть совокупность способов и приемов совместной согласованной деятельности учителя и учащихся а также учащихся друг с другом в процессе которой последними достигается определенный уровень владения ИЯ и оказывается существенное развивающее воздействие на личность обучаемого на его способности и готовность пользоваться изучаемым языком как средством социального взаимодействия и взаимопонимания с представителями иной культуры средства познания последней. Учащиеся самно или под руководством учителя занимаются поиском разрешения...
53469. Использование ролевых игр на уроках иностранного языка 33.5 KB
  Иногда ролевая игра носит характер уподобления т. Объектом данного исследования послужила ролевая игра как форма взаимодействия учащихся на уроке иностранного языка. Ролевая игра это речевая игровая и учебная деятельность одновременно. Таким образом можно сформулировать важнейшее для теории ролевой игры положение: ролевая игра возникает в ходе исторического развития общества в результате изменения места ребенка в системе общественных отношений.
53470. Подарок ко Дню 8 Марта 48.5 KB
  И сегодня мы будем с вами делать цветок на 8 Марта. Но цветок будет необычный а с помощью гофрирования. Сейчас мы с вами попробуем с помощью гофрирования сделать вот такой цветок. Один отложим в сторону а на другом будет наш цветок.
53471. Простудные заболевания 37.5 KB
  Познавательные: Сформировать понятия: симптом, патогенные микроорганизмы (вирусы; микробы: бактерии, грибы), респираторный. Воспитательные: Формирование сознательного, ответственного отношения к своему здоровью.
53472. Рання статева близькість - за і проти». Захворювання статевих органів. Венеричні захворювання, їх профілактика 86 KB
  1 група ЗА 1 учень 1314 років це період статевого дозрівання період коли організм виробляє велику кількість статевих гормонів коли виникає тяга до протилежної статі. 2 учень Іноді статева близькість відбувається в результаті того що дівчина боїться втратити коханої людини. 3 учень Відповідно до статистики більшість підлітків вступають у статевий зв'язок у 1415 років. 4 учень Ви знаєте що в Донбасі жахливе навколишнє середовище.