Лекции.Орг

Поиск:


Устал с поисками информации? Мы тебе поможем!

Запросы




Если имеется база данных, то можно написать запрос (цель) к ней. Запрос — это формулировка задачи, которую программа должна решить. Его структура такая же, как у правила или факта. Существуют запросы с константами и запросы с переменными.

Запросы с константами позволяют получить один из двух ответов: “да” или “нет”

Например, имеются факты:

знает (лена, таня).

знает (лена, саша).

знает (саша, таня).

а) Знает ли Лена Сашу?

запрос: знает (лена, саша).

Результат: yes

б) Знает ли Таня Лену?

запрос знает (таня, лена).

Результат: no

Если в запрос входит переменная, то интерпретатор пытается найти такие ее значения, при которых запрос будут истинным.

а) Кого знает Лена?

запрос: знает (лена, Х).

Результат:


Х = таня

Х = саша

б) Кто знает Сашу?

запрос: знает (Х, саша).

Результат: Х = лена

Запросы могут быть составными, т.е. состоять из нескольких простых запросов. Они объединяются знаком “,“, который понимается как логическая связка “и”.

Простые запросы называются подцелью, составной запрос принимает истинное значение тогда, когда истинна каждая подцель.

Для ответа, есть ли общие знакомые у Лены и Саши, следует составить запрос:

Знает (лена, Х), знает (саша, Х).

Результат:

Х = Таня

Переменные в ПРОЛОГе

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

Имя переменной должно начинаться с прописной буквы или символа подчеркивания и содержать только символы букв, цифр и подчеркивания: Х, _у, АВ, Х1. Переменная, не имеющая значения, называется свободной, переменная, имеющая значение – конкретизированной.

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

родитель (ира, таня).

родитель (миша, таня).

родитель (оля, ира).

Требуется определить всех родителей

Запрос: родитель(Х, _)

Результат:

Х = Ира

Х = Миша

Х = Оля

Областью действия переменной является утверждение. В пределах утверждения одно и то же имя принадлежит одной и той же переменной. Два утверждения могут использовать одно имя переменной совершенно различным образом.

В ПРОЛОГе нет оператора присваивания, его роль выполняет оператор равенства =. Цель X=5 может рассматриваться как сравнение (если переменная X имеет значение) или как присваивание (если переменная X свободна).


В ПРОЛОГе нельзя для увеличения значения переменной записать X=X+5. Следует использовать новую переменную: Y=X+5.






Дата добавления: 2015-09-20; Мы поможем в написании ваших работ!; просмотров: 434 | Нарушение авторских прав | Изречения для студентов


Читайте также:

Поиск на сайте:

Рекомендуемый контект:





© 2015-2021 lektsii.org - Контакты - Последнее добавление

Ген: 0.002 с.