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

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

  • Пример 3

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

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

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


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

    PREDICATES

    имя(string)

    туфли(string) платье(string) соот (string,string,string) решение (string,string,string,string,string,string, string,string,string)

    CLAUSES

    имя(наташа).

    имя(валя). имя(аня).

    туфли(белый).

    туфли(синий). туфли(зеленый). платье(белый). платье(синий). платье(зеленый).

    °% X- имя, Y - цвет туфель, Z - цвет платья соот(Х,У^): -имя(Х),туфли(У),платье^), Х=наташа,У=зеленый,У<^.

    соот(Х,У^): -имя(Х),туфли(У),платье^), X=валя,not(Y=белый), not(Z=белый), Y<>Z.

    соот (X,Y,Z):-имя(X),туфли(Y),платье(Z),X=аня,Y=Z. решение(Х1,У1^1,Х2,У2^2,Х3,У3^3):-

    Х1=наташа,соот(X1,Y1,Z1), Х2=валя, соот(Х2,У2^2), Х3=аня, соот(Х3,У3^3), Y1<>Y2, Y2<>Y3, Y1<>Y3, Z1<>Z2, Z2<>Z3, Z1<>Z3.

    GOAL

    решение(Х1,У1^1,Х2,У2^2,Х3,У3^3),

    write^^"

    туфли-

    ",У1,"

    платье-

    ",Z1)

    ,nl,

    write(X2,"

    туфли-

    ",У2,"

    платье-

    ",Z2)

    ,nl,

    write(X3,"

    туфли-

    ",У3,"

    платье-

    ",Z3)

    ,nl.


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

    наташа

    туфли -

    зеленый

    платье

    - синий

    валя

    туфли -

    синий

    платье

    - зеленый

    аня

    туфли -

    белый

    платье

    - белый

    Пример 3

    Витя, Юра и Миша сидели на скамейке. В каком порядке они сидели, если известно, что Миша сидел слева от Юры, а Витя слева от Миши.

    Решение

    PREDICATES

    слева(string,string) ряд(string,string,string)

    CLAUSES

    /* Миша сидел слева от Юры */ слева(миша, юра).

    /* Витя сидел слева от Миши */ слева(витя, миша).

    /* Объекты X, Y и Z образуют ряд,

    если Х слева от Y и Y слева от Z */ ряд(Х, Y, Z):- слева(ХД), слева(У, Z).

    GOAL

    ряд^, Y, Z), write(X,"-",Y,"-",Z),nl.

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

    витя-миша-юра

    Пример 4

    Известно, что тополь выше березы, которая выше липы. Клен ниже липы, а сосна выше тополя и ниже ели. Определить самое высокое и самое низкое дерево.

    Решение

    DOMAINS

    name=string

    PREDICATES

    выше(name,name)

    ряд(name,name,name,name,name,name)

    CLAUSES

    выше(тополь,береза).

    выше(липа,клен).

    выше(ель,сосна). выше(береза,липа). выше(сосна,тополь).

    ряд(Х1,Х2,Х3,Х4,Х5,Х6):-выше(Х1,Х2),выше(Х2,Х3), выше(Х3,Х4),выше(Х4,Х5), выше(Х5,Х6).

    GOAL ряд(X,_,_,_,_,Y),write("Самое высокое - ",X),nl, write("Самое низкое - ",Y),nl.

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

    Самое высокое - ель

    Самое низкое - клен

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

    1. Трое ребят вышли гулять с собакой, кошкой и хомячком. Известно, что Петя не любит кошек и живет в одном подъезде с хозяйкой хомячка. Лена дружит с Таней, гуляющей с кошкой. Определить, с каким животным гулял каждый из детей.

    2. Беседуют трое друзей: Белокуров, Рыжов и Чернов. Брюнет сказал Белокурову: «Любопытно, что один из нас блондин, другой - брюнет, а третий - рыжий, но ни у кого цвет волос не соответствует фамилии». Какой цвет волос у каждого из друзей?

    3. Витя, Юра, Миша и Дима сидели на скамейке. В каком порядке они сидели, если известно, что Юра сидел справа от Димы, Миша справа от Вити, а Витя справа от Юры.

    4. Известно, что Волга длиннее Амударьи, а Днепр короче Амударьи. Лена длиннее Волги. Определить вторую по протяженности реку.

    1.4 Арифметические вычисления и рекурсия в ПРОЛОГе

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

    Хотя Пролог не предназначен для решения вычислительных задач, его возможности вычислений аналогичны соответствующим возможностям таких языков программирования как Basic, C, Pascal.

    В языке Пролог имеется ряд встроенных функций для вычисления арифметических выражений, некоторые из которых перечислены в таблице 1.

    Таблица 1. Математические операции и функции в Прологе

    X + Y

    Сумма X и Y

    X - Y

    Разность X и Y

    X * Y

    Произведение X и Y

    X / Y

    Деление X на Y

    X mod Y

    Остаток от деления X на Y

    X div Y

    Целочисленное деление X на Y

    abs(X)

    Абсолютная величина числа X

    sqrt(X)

    Квадратный корень из X

    random(X)

    Случайное число в диапазоне от 0 до 1

    random(Int,

    X)

    Случайное целое число в диапазоне от 0 до Int

    round(X)

    Округление Х

    trunc(X)

    Целая часть Х

    sin(X)

    Синус X




    cos(X)

    Косинус X

    arctan(X)

    Арктангенс Х

    tan(X)

    Тангенс X

    ln(X)

    Натуральный логарифм X

    log(X)

    Логарифм Х по основанию 10

    1   2   3   4   5   6   7   8   9   10


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