Файл: Отчет по лабораторной работе. В текстовом редакторе Notepad описываем связи родительребёнок.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 83

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образованияНациональный исследовательский университет «МЭИ»Кафедра «Прикладная информатика»Отчёт по лабораторной работе №1Простейшая программа на языке Пролог.Выполнил:Студент ИЭ-64-20Мечетнов М.Г._____________________“___” ___________2023 г.Проверила:Карпович Е.Е. _____________________“___” ___________2023 г.Москва 2023 г.Необходимо выполнить следующие действия:

  1. Описать с помощью фактов 4-уровневовое генеалогическое дерево в Пролог в программе “parents”, включающей предикаты parent и person.

  1. Написать правила, определяющие следующие отношения:

  • “X является отцом Y” .

  • “X является бабушкой Y” .

  • “X является сестрой Y” .

  • “X является племянником Y” .

  • “X является племянницей Y” .

  • “X является родителем родителя Y” .

  • “X является прадедушкой Y” .

  • “X является двоюродным братом Y” .

  1. Отладить программу с помощью интерпретатора SWI Prolog.

  1. Продемонстрировать работу программы с помощью вопросов.

  1. Составить отчет по лабораторной работе.

  1. В текстовом редакторе «Notepad++» описываем связи «родитель-ребёнок» и их данные (имя, пол и возраст) через предикаты parent и person:
:- encoding(text).parent('Оливия','Мэтью').parent('Оливия','Карин').parent('Льюис','Мэтью').parent('Льюис','Карин').parent('Льюис','Фон').parent('Мэтью','Катерина').parent('Мэтью','Ларс').parent('Карин','Генри').parent('Катерина','Марко').parent('Катерина','Элизабет').person('Оливия','ж',74).person('Льюис','м',75).person('Мэтью','м',45).person('Карин','ж',42).person('Фон','м',55).person('Катерина','ж',25).person('Ларс','м',23).person('Марко','м',5).person('Элизабет','ж',2).person('Генри','м',20).father(X,Y):-parent(X,Y),person(X,'м',_).grandmother(X,Y):-parent(X,Z),parent(Z,Y),person(X, 'ж',_).sister(X,Y):-parent(Z,X),parent(Z,Y),X\=Y,person(X,'ж',_).nephew(X,Y):-sis_bro(Y,Z),parent(Z,X),person(X,'м',_).sis_bro(X,Y):-parent(Z,X),parent(Z,Y),X\=Y.brother(X,Y):-parent(Z,X),parent(Z,Y),X\=Y,person(X,'м',_).grandparent(X,Y):-parent(X,Z),parent(Z,Y).
grandgrandfather(X,Y):-grandparent(Z,Y),parent(X,Z),person(X,'м',_).twobrother(X,Y):-sis_bro(Z,U),parent(Z,X),person(X,'м',_).Схема древа выглядит следующим образом:Рис. №1. Схема семейного древа

  1. Проводим отладку программы “parents” в интерпретаторе SWI Prolog

  2. Демонстрация работы “parents”:

  • “X является отцом Y”:
Рис. №2. Вывод отношения “X является отцом Y”

  • “X является бабушкой Y”:
Рис. №3. Вывод отношения “X является бабушкой Y”

  • “X является сестрой Y”:
Рис. №4. Вывод отношения “X является сестрой Y”

  • “X является племянником Y”:
Рис. №5. Вывод отношения “X является племянником Y”

  • “X является племянницей Y”:
Рис. №6. Вывод отношения “X является племянницей Y”

  • “X является родителем родителя Y”:
Рис. №7. Вывод отношения “X является родителем родителя Y”

  • “X является прадедушкой Y”:
Рис. №8. Вывод отношения “X является прадедушкой Y”

  • “X является двоюродным братом Y”:
Рис. №9. Вывод отношения “X является двоюродным братом Y”