Описание заголовка служит образцом записи обращений к правилам и процедурам. Определения в правилах образуются из обращений к другим правилам и процедурам, а также из запросов к данным и встроенным процедурам Пролога. Общая форма записи определений в правилах:
определение:
<заголовок>[,<заголовок> ...]
Запросы и определения отделяются в описаниях правил запятыми и записываются по тем же правилам, что и заголовки.
Порядок записи обращений и запросов в определениях правил в языке Пролог весьма существенен, поскольку он задает порядок их применения и выполнения. Нарушение этого порядка может привести к значительному изменению конечных результатов выполнения правил и процедур.
Результатом выполнения любых процедур и правил в Прологе всегда являются логические значения - ДА либо НЕТ, соответствующее успеху или неуспеху их применения. В этом смысле применение правил в Прологе совпадает с проверкой условий в логике. Соответственно форма записи обращений к правилам и процедурам в Прологе совпадает с формой записи предикатов в математической логике.
Однако в отличие от математической логики, где существенны только логические значения этих предикатов, в Прологе результатом применения правил и процедур может быть конкретизация значений переменных, указанных в обращениях к ним.
Пример такого обращения:
? родитель (х,вова)
х = зина
Полученный ответ имеет двойной результат: во-первых, подтверждение истинности наличия «родителей» у «вовы», а во-вторых, конкретизация переменной «х» в обращении к процедуре «родитель» с именем «вова», которая дает значение «х = зина».
Кроме конкретизации значений переменных в запросах и обращениях результатами выполнения процедур и правил в Прологе могут быть различного рода побочные эффекты - вывод на экран линий, точек, картинок, сообщений, запись и считывание данных и т. п.
В этом смысле результаты выполнения процедур и программ на Прологе могут быть эквивалентны результатам выполнения программ на других языках программирования.
6.5. Встроенные предикаты Пролога
Для операций над числами в рассматриваемой версии Пролога имеются следующие арифметические предикаты:
Предикат: Смысл:
СУММА (x,y,z) х + у = zПРОИЗВ (x,y,z) х*у = z
ЧАСТНОЕ (x,y,z) [х/у] = z
ОСТАТОК (x,y,z) х - [х/у] = z
РАВНО (х,у) х = у
БОЛЬШЕ (х,у) х > у
МЕНЬШЕ (х,у) х < у
Арифметические предикаты по смыслу и функциям существенно отличаются от арифметических операций в традиционных языках программирования. Прежде всего любой из этих предикатов вырабатывает логическое значение ИСТИНА или ЛОЖЬ в зависимости от того, имеет или не имеет решение арифметическая задача, представляемая предикатом.
Примеры:
? СУММА (2,2,5)
НЕТ
? СУММА (2,2,z)
z = 4
? СУММА (х,2,5)
х = 3
Таким образом, арифметические предикаты позволяют решать простейшие арифметические уравнения с одной или несколькими переменными, автоматически производя соответствующие вычисления, если эти решения существуют. Однако обращение к предикатам, связанным с умножением и делением целых чисел, может дать отрицательный результат из-за отсутствия решений в некоторых случаях:
? ПРОИЗВ (2,у,5)
НЕТ
? ЧАСТНОЕ (5,2,z)
z = 2
? ОСТАТОК (5,2,r)
r = 1
Предикаты БОЛЬШЕ и МЕНЬШЕ вместе с предикатом РАВНО могут использоваться для сравнения различных численных переменных и констант. А предикаты «неменьше» и «небольше» могут быть определены через отрицание предикатов БОЛЬШЕ и МЕНЬШЕ:
небольше (х,у) ¬ НЕ (БОЛЬШЕ (х,у));
неменьше (х,у) ¬ НЕ (МЕНЬШЕ (х,у));
Предикат РАВНО может использоваться также для сравнения значений переменных и констант. При этом переменные могут быть и числовыми, и символьными, и других типов. Примеры:
? РАВНО (5,z)
z= 5
? РАВНО (х,миша)
х = миша
? РАВНО (коля.оля)
НЕТ
Вывод графических изображений на экран в настоящей версии интерпретатора может производиться с помощью следующих предикатов:
ТОЧКА(х,у,с);
ЛИНИЯ (x,y,u,v,c);
ОКРУЖНОСТЬ(х,у,с);
где (х,у) и (u,v) - координаты точек на экране, а с - цвет точки. Конкретные значения кодов цветов и диапазоны значений координат точек на экране зависят от типа ЭВМ.
А. Графические предикаты:
Предикат: Смысл: Пример:
ФОН (с) задание цвета фона ФОН (8)
ТОЧКА (х,у,с) вывод точки ТОЧКА (0,0,2)
ЛИНИЯ (x,y,u,v,c) вывод отрезка линии ЛИНИЯ (0,0,50,50,4)
ОКРУЖНОСТЬ (х,у,с) вывод окружности ОКРУЖНОСТЬ (90,90,10, 6)
ЗАКРАСКА(х,у,с) закраска фигур ЗАКРАСКА (10,40,8)
Б. Предикаты ввода-вывода:
Предикат: Смысл: Пример:
ВЫВОД (<3начение>)вывод набора значенийВЫВОД(«имя», х)
ВВОДСИМВ (s)ввод символьных данных
ВВОДЦЕЛ (n)ввод числовых данных
ПСперевод строки
В. Логические предикаты:
Предикат: Смысл: Пример:
ИСТИНАлогическая константа
ЛОЖЬлогическая константа
НЕ (<Предикат>)отрицание предиката НЕ (РАВНО(z,0))
Автор - лицо, творческим трудом которого создано произведение (программа или база данных на ЭВМ).
Авторские права - права на имя, внесение изменений и имущественные права на созданное произведение.
Алгоритм - совокупность действий со строго определенными правилами выполнения.
Алгоритм массовый, если он применим для решения некоторого класса задач.
Алгоритм однозначный, если однозначны правила его выполнения.
Алгоритм правильный, если он дает правильные результаты для любых допустимых данных и ситуаций.
Алгоритм результативен, если его выполнение завершается определенными результатами.
Алгоритм содержит ошибки, если его выполнение приведет к неправильным результатам, либо не дает никаких результатов.
Алгоритмизация - составление алгоритмов для решения поставленных задач.
Алгоритмические ошибки - ошибки в методе, постановке, сценарии и реализации.
Алгоритмические языки - языки описания алгоритмов.
Антивирусные программы - программы для защиты от вирусов.
База данных - форма представления и организации совокупности данных, допускающие поиск и обработку с помощью ЭВМ.
База знаний - форма представления и организация совокупности данных и правил вывода, допускающих логический вывод и осмысленную обработку данных в ЭВМ.
Байт - 8-разрядное двоичное число (1 байт = 8 бит).
Бит - величина, принимающая значение 0 или 1.
Безошибочное программирование - составление алгоритмов и программ без ошибок.
Бейсик - диалоговый язык программирования для персональных компьютеров.
Бумажные технологии - информационные технологии, связанные с бумагой.
Вопрос в Прологе - запрос к базе знаний или программе.
Входные данные - данные, вводимые в ЭВМ.
Выходные данные - данные, выводимые из ЭВМ.
Вычислительная машина - устройство для организации автоматических вычислений и обработки информации.
Вычислительные процессы - процессы вычислений и обработки информации в вычислительных машинах и системах.
Вычислительная система - объединение вычислительных машин для организации хранения, обработки и поиска информации.
Вычислительная сеть - совокупность ЭВМ, объединенных сетью связи, позволяющей компьютерам проводить обмен информацией.
Вычислительные науки - науки об организации вычислительных процессов, а также вычислительных машин, систем и сетей.
Глобальная сеть - сеть, в которой объединены компьютеры в различных странах на различных континентах.
Дизъюнкция - логическая связка «или».
Дизъюнкция А или В истинна, когда истинно хотя бы одно из суждений А или В.
Дизъюнкция А или В ложна, когда ложны оба суждения А и В.
Дисплей - устройство отображения информации на электронном экране.
Дистанционное обучение - обучение на расстоянии с использованием учебников, персональных компьютеров и сетей ЭВМ.
Доказательство - последовательность суждений, обосновывающих некоторое утверждение.
Доказательное программирование - составление алгоритмов и программ одновременно с доказательством их правильности.
Документ - информация, зафиксированная на материальном носителе, имеющем реквизиты, позволяющие его идентифицировать.
Закон достаточных оснований: «Всякое утверждение должно предполагать наличие аргументов и фактов, достаточных для его обоснования».
Закон двойного отрицания; «Если неверно отрицание, то суждение - истинно».
Закон исключения третьего: «Истинно суждение либо его отрицание - третьего не дано».
Закон противоречия: «Не могут быть истинны одновременно суждение и его отрицание».
Закон тождества: «Предмет рассмотрения должен быть строго определен и не должен меняться до конца обсуждения».
Законы логики - общие законы логического вывода.
Защита информации - действия и средства по предотвращению утечки, хищению, искажению или подделки информации.
Импликация - логическое следование А ® В.
Импликация А ® В ложна, когда посылка А истинна, а следствие В ложно.
Импликация А ® В истинна, когда истинно следствие, либо ложны и следствие, и посылка.