Главная страница
Навигация по странице:

  • Отчёт по лабораторной работе №2 По курсу «Декларативные языки программирования» На тему «Работа с соотношениями в языке Prolog» Выполнили

  • Студенты группы 16ВВ1 Борискин В.В. Кривошеев С.В. Принял: Бычков А.С.

  • Вариант: 2 А2,А12,Б8,Б18,Б25,С2 Мать, дядя, троюродная сестра, двоюродная племянница, n-юродная сестра, жена.Листинг

  • Граф-схема. Результат работы программы

  • Программирование. Работа с соотношениями в языке Prolog


    Скачать 95.72 Kb.
    НазваниеРабота с соотношениями в языке Prolog
    АнкорПрограммирование
    Дата02.05.2023
    Размер95.72 Kb.
    Формат файлаdocx
    Имя файлаLab2.docx
    ТипОтчет
    #1102018

    Министерство образования Российской Федерации

    Пензенский государственный университет

    Кафедра «Вычислительная техника»

    Отчёт по лабораторной работе №2

    По курсу «Декларативные языки программирования»

    На тему «Работа с соотношениями в языке Prolog»

    Выполнили:

    Студенты группы 16ВВ1

    Борискин В.В.

    Кривошеев С.В.
    Принял:

    Бычков А.С.


    Пенза 2017

    Цель работы


    Изучение реляционного подхода к программированию на

    языке Пролог, получение практических навыков работы с отношениями

    на языке Пролог (на примере отношений родства).

    Лабораторное задание


    1. Получить задание.

    2. Составить базовые отношения РОДИТЕЛЬ, ЖЕНЩИНА, МУЖЧИНА,

    СУПРУГИ, представить полученные отношения в виде нагруженного ориентированного графа. Каждому бинарному отношению при этом будет

    соответствовать свой тип дуг.

    3. Представить на языке Пролог базовые отношения.

    4. Определить в виде правил и представить на языке Пролог от-

    ношения родства (в соответствии со своим вариантом).

    5. Набрать в текстовом редакторе системы Arity Prolog (или

    любом другом текстовом редакторе) текст Пролог-программы.

    6. Задать Пролог-программе вопросы, касающиеся представленных

    родственных отношений, следующих типов.

    6.1) "Находится ли субъект а в отношении R с субъектом b?"

    6.1.1) "Является ли субъект a родственником типа R для

    субъекта b?" [вопрос типа R(a,b)].

    6.1.2) "Является ли субъект b родственником типа R для

    субъекта a?" [вопрос типа R(b,a)].

    6.2) "Кто находится в отношении R с субъектом a?"

    6.2.1) "Найти всех субъектов, для которых a является

    родственником типа R" [вопрос типа R(a,X)]

    6.2.2) "Найти всех субъектов, которые являются родственниками типа R для субъекта b" [вопрос типа R(Y,b)].

    6.3) "Найти все пары субъектов, находящихся в отношении R"

    [вопрос типа R(X,Y)].

    7. Проверить вручную, соответствуют ли полученные ответы ожидаемому результату.

    Вариант: 2

    А2,А12,Б8,Б18,Б25,С2 Мать, дядя, троюродная сестра, двоюродная племянница, n-юродная сестра, жена.

    Листинг
    parent(olga,vyacheslav).

    parent(vladimir,vyacheslav).

    parent(petr,vladimir).

    parent(petr,valentin).

    parent(ivan,petr).

    parent(ivan,aleksei).

    parent(aleksei,raya).

    parent(raya,galina).

    parent(valentin,maksim).

    parent(maksim,sofia).

    parent(alexasndr,ivan).

    parent(alexandr,lubov).

    parent(lubov,ksenia).

    parent(ksenia,oleg).

    parent(oleg,marina).
    wife(olga,vladimir).

    woman(olga).

    woman(raya).

    woman(galina).

    woman(sofia).

    woman(lubov).

    woman(ksenia).

    woman(marina).
    man(vladimir).

    man(vyacheslav).

    man(petr).

    man(ivan).

    man(aleksei).

    man(valentin).

    man(maksim).

    man(alexsandr).

    man(oleg).

    mother(X,Y):-parent(X,Y),woman(X).
    uncle(B,Y):-parent(X,Y),parent(Z,X),parent(Z,B),man(B).
    second_coustin_sister(S,Y):-parent(X,Y),parent(Z,X),parent(B,Z),parent(B,A),parent(A,C),parent(C,S),woman(S).
    first_coustin_niece(C,Y):-parent(X,Y),parent(Z,X),parent(Z,B),parent(B,A),parent(A,C),woman(C).
    four_coustin_sister(K,Y):-parent(X,Y),parent(Z,X),parent(B,Z),parent(A,B),parent(A,C),parent(C,S),parent(S,M),parent(M,K),woman(K).
    Граф-схема.




    Результат работы программы:

    Вывод: Изучили реляционный подход к программированию на

    языке Пролог, получили практические навыки работы с отношениями

    на языке Пролог (на примере отношений родства).


    написать администратору сайта