Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ФиЛП для ИВТ.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
147 Кб
Скачать
☆

5.4. Переменные в пролоГе

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

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

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

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

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

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

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

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

Результат:

Х = Ира

Х = Миша

Х = Оля

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

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

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

5.5. Объекты и типы данных в пролоГе

Объекты данных в ПРОЛОГе называются термами. Терм может быть константой, переменной или составным термом (структурой). Константами являются целые и действительные числа (0, -l, 123.4, 0.23E-5), а также атомы.

Атом – любая последовательность символов, заключенная в кавычки. Кавычки опускаются, если строка начинается со строчной буквы и содержит только буквы, цифры и знак подчеркивания (т.е. если ее можно отличить от обозначения переменных). Примеры атомов:

abcd, “a+b”, “студент Иванов”, пролог, “Пролог”.

Структура позволяет объединить несколько объектов в единое целое. Она состоит из функтора (имя) и последовательности термов.

Например, data (15, апрель, 1983)

data – функтор, (15, апрель, 1983) – термы

Число компонент в структуре называется арностью структуры: data/3.

Структура может содержать другую структуру в качестве одного из своих объектов.

день_рождения (person(“Маша”,”Иванова”), data(15,апрель,1983))

Доменом в ПРОЛОГе называют тип данных. Стандартными доменами являются:

integer – целые числа.

real – вещественные числа.

string – строки (любая последовательность символов, заключенная в кавычки).

char – одиночный символ, заключенный в апострофы.

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

5.6. Основные разделы пролог-программы

Как правило, программа на ПРОЛОГе состоит из четырех разделов.

DOMAINS – секция описания доменов (типов). Секция применяется, если в программе используются нестандартные домены.

Например:

name = string

data = integer

PREDICATES – секция описания предикатов. Секция применяется, если в программе используются нестандартные предикаты.

Например:

знает (name, name)

студент (name)

CLAUSES – секция предложений. Именно в этой секции записываются предложения: факты и правила вывода.

Например:

знает (лена, иван).

студент (иван).

знаком_студент(X,Y):- знает (X,Y ), студент (Y).

GOAL – секция цели. В этой секции записывается запрос.

Например:

знаком_студент(лена,X).

Простейшая программа может содержать только раздел GOAL, например:

GOAL

write (“Введите Ваше имя: ”), readln (Name),

write (“Здравствуйте, ”, Name, “!”).

Комментарий: write – стандартный предикат вывода, readln – стандартный предикат ввода строкового значения