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

  • Результат выполнения программы

  • 1.3 Решение логических задач в ПРОЛОГе Краткие теоретические сведения

  • Пример 1

  • Пример 2

  • Лабораторный практикум пролог. Методические рекомендации по дисциплине Анализ данных


    Скачать 311.21 Kb.
    НазваниеМетодические рекомендации по дисциплине Анализ данных
    АнкорЛабораторный практикум пролог
    Дата11.03.2021
    Размер311.21 Kb.
    Формат файлаodt
    Имя файлаProlog.odt
    ТипМетодические рекомендации
    #183725
    страница6 из 10
    1   2   3   4   5   6   7   8   9   10
    Комментарий: readint - стандартный предикат ввода целочисленного значения

    Результат выполнения программы:

    1. й случай:

    Z=88

    M

    1. й случай:

    Z=65

    S

    1. й случай:

    Z=39

    N

    1. й случай:

    Z=110

    Неверный ввод данных!

    ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

    1. База данных содержит следующие факты:

    увлекается(“Коля”, гитара). увлекается(“Оля”, скрипка). увлекается(“Дима”, плаванье). увлекается(“Таня”, теннис). спорт(плаванье).

    спорт(теннис). муз_инстр(скрипка). муз_инстр(гитара).

    а) составить правило спортсмен и определить, кто увлекается спортом;

    б) проследить за поиском решения с помощью отладчика;

    в) построить целевое дерево поиска с возвратом.

    1. База данных содержит следующие факты:

    увлекается(“Дима”, плаванье). увлекается(“Таня”, теннис). увлекается(“Коля”, гитара). увлекается(“Оля”, скрипка). спорт(плаванье).

    спорт(теннис). муз_инстр(скрипка). муз_инстр(гитара).

    а) составить правило музыкант и определить, кто увлекается музыкой;

    б) проследить за поиском решения с помощью отладчика;

    в) построить целевое дерево поиска с возвратом.

    1. Составить программу, реализующую справочник товаров. В справочнике содержится следующая информация о каждой товаре: вид товара (промышленный или продуктовый), название, цена, количество, страна- производитель. Вывести:

    а) всю информацию из справочника;

    б) информацию о товарах, количество которых не превышает заданное значение;

    в) информацию о промышленных товарах, цена которых превышает заданное значение.

    1. База данных содержит факты вида: книга(автор, название, издательство, год_издания), украина(город).

    а) вывести весь список книг;

    б) вывести список книг авторов Пушкина и Чехова;

    в) вывести список книг, изданных в издательстве «Питер» не ранее 2000 года.

    1. Составить программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, время вылета, дни(ежедн., чет, нечет). Вывести:

    а) всю информацию из справочника;

    б) информацию о самолетах, вылетающих в заданный пункт по четным дням;

    в) информацию о самолетах, вылетающих ежедневно не позже указанного времени.

    1. Составить программу, реализующую географический справочник. В справочнике содержится следующая информация о каждой стране: название страны, название столицы, численность населения, географическое положение (Европа или Азия ). Вывести:

    а) всю информацию из справочника;

    б) информацию о странах, численность населения которых превышает заданное значение;

    в) информацию о европейских странах, численность населения которых не превышает заданное значение.

    1. Составить программу, реализующую словарь. В словаре содержится

    следующая информация: слово и его перевод (русские и английские слова). Реализовать вывод всего словаря, перевод с русского на английский, с английского на русский (с несколькими значениями).

    1. Составить программу, реализующую телефонный справочник. В справочнике

    содержится следующая информация о каждом абоненте: имя и телефон. Реализовать вывод всей информации из справочника, поиск телефона по имени, поиск имени по телефону

    1. База данных содержит факты вида: ученик(имя, класс) и увлекается(имя,

    хобби). Составить программу, которая выводит:

    а) список всех учеников и их увлечения;

    б) подбирает одному из учеников указанного класса, увлекающемуся кино, пару из других классов. Вывести все возможные пары.

    1. База данных содержит факты вида: ученик(имя, класс) и играет(имя, вид_спорта). Составить программу, которая:

    а) выводит список всех учеников заданного класса и вид спорта, которым они увлекаются;

    б) подбирает одному из учеников указанного класса, играющему в бадминтон, пару из других классов. Вывести все возможные пары.

    1.3 Решение логических задач в ПРОЛОГе

    Краткие теоретические сведения

    ПРОЛОГ позволяет наиболее естественным образом решать логические задачи, моделируя процесс размышления человека с помощью правил.

    Многие логические задачи связаны с рассмотрением нескольких конечных множеств с одинаковым количеством элементов, между которыми устанавливается взаимно-однозначное соответствие. В ПРОЛОГе эти множества можно описывать как базы данных, а зависимости между объектами устанавливать с помощью правил.

    Пример 1

    В автомобильных гонках три первых места заняли Алеша, Петя и Коля. Какое место занял каждый из них, если Петя занял не второе и не третье место, а Коля - не третье?

    Решение

    Традиционным способом задача решается заполнением таблицы. По условию задачи Петя занял не второе и не третье место, а Коля - не третье. Это позволяет поставить символ '-' в соответствующих клетках.

    Имя

    I место

    II место

    III место

    Алеша










    Петя




    -

    -

    Коля







    -

    Между множеством имен участников гонки и множеством мест должно быть установлено взаимнооднозначное соответствие. Поэтому определяем занятое место сначала у Пети, затем у Коли и, наконец, у Алеши. В соответствующих клетках проставляем знак '+'. В каждой строке и каждом столбце должен быть только один такой знак.

    Имя

    I место

    II место

    III место

    Алеша

    -

    -

    +

    Петя

    +

    -

    -

    Коля

    -

    +

    -

    Из последней таблицы следует, что Алеша занял третье место, Петя - первое, Коля - второе.

    Программа на ПРОЛОГе будет выглядеть следующим образом:

    PREDICATES

    имя(string)

    место(string) соответствие(string,string) решение(string,string,string,string,string,string)

    CLAUSES

    имя(алеша).

    имя(петя).

    имя(коля). место(первое). место(второе). место(третье).

    /* Устанавливаем взаимнооднозначное соответствие между множеством имен и множеством мест, X - имя, Y - место */ /* Петя занял не второе и не третье место */ соответствие^, Y):-имя(X), X=nетя, место(Y),not(Y=второе), not(Y=третье).

    /* Коля занял не третье место */ соответствие^, Y):- имя®, X=коля,

    место^), not(Y=третье). соответствие^, Y):- имя®, X=алеша, место^). /* У всех ребят разные места */ решение(X1,Y1,X2,Y2,X3,Y3):-

    X1=петя,соответствие(X1,Y1),

    X2=коля,соответствие(X2,Y2), X3=алеша,соответствие(X3,Y3),

    Y1<>Y2, Y2<>Y3, Y1<>Y3.

    GOAL

    решение(X1,Y1,X2,Y2,X3,Y3), write(X1," - ",Y1),nl,

    write(X2," - ",Y2),nl,write(X3," - ",Y3),nl.

    Результат выполнения программы

    петя - первое

    коля - второе

    алеша - третье

    Пример 2

    Наташа, Валя и Аня вышли на прогулку, причем туфли и платье каждой были или белого, или синего, или зеленого цвета. У Наташи были зеленые туфли, а Валя не любит белый цвет. Только у Ани платье и туфли были одного цвета. Определить цвет туфель и платья каждой из девочек, если у всех туфли и платья были разного цвета.

    1   2   3   4   5   6   7   8   9   10


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