Смекни!
smekni.com

Лекции по информатики 2 (стр. 41 из 43)

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

определение:

<заголовок>[,<заголовок> ...]

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

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

Результатом выполнения любых процедур и правил в Прологе всегда являются логические значения - ДА либо НЕТ, соответству­ющее успеху или неуспеху их применения. В этом смысле приме­нение правил в Прологе совпадает с проверкой условий в логике. Соответственно форма записи обращений к правилам и процедурам в Прологе совпадает с формой записи предикатов в математической логике.

Однако в отличие от математической логики, где существенны только логические значения этих предикатов, в Прологе резуль­татом применения правил и процедур может быть конкретизация значений переменных, указанных в обращениях к ним.

Пример такого обращения:

? родитель (х,вова)

х = зина

Полученный ответ имеет двойной результат: во-первых, подтверж­дение истинности наличия «родителей» у «вовы», а во-вторых, кон­кретизация переменной «х» в обращении к процедуре «родитель» с именем «вова», которая дает значение «х = зина».

Кроме конкретизации значений переменных в запросах и обра­щениях результатами выполнения процедур и правил в Прологе могут быть различного рода побочные эффекты - вывод на экран линий, точек, картинок, сообщений, запись и считывание данных и т. п.

В этом смысле результаты выполнения процедур и программ на Прологе могут быть эквивалентны результатам выполнения программ на других языках программирования.

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.

Безошибочное программирование - составление алгоритмов и про­грамм без ошибок.

Бейсик - диалоговый язык программирования для персональных компьютеров.

Бумажные технологии - информационные технологии, связанные с бумагой.

Вопрос в Прологе - запрос к базе знаний или программе.

Входные данные - данные, вводимые в ЭВМ.

Выходные данные - данные, выводимые из ЭВМ.

Вычислительная машина - устройство для организации автоматичес­ких вычислений и обработки информации.

Вычислительные процессы - процессы вычислений и обработки информации в вычислительных машинах и системах.

Вычислительная система - объединение вычислительных машин для организации хранения, обработки и поиска информации.

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

Вычислительные науки - науки об организации вычислительных процессов, а также вычислительных машин, систем и сетей.

Глобальная сеть - сеть, в которой объединены компьютеры в раз­личных странах на различных континентах.

Дизъюнкция - логическая связка «или».

Дизъюнкция А или В истинна, когда истинно хотя бы одно из сужде­ний А или В.

Дизъюнкция А или В ложна, когда ложны оба суждения А и В.

Дисплей - устройство отображения информации на электронном экране.

Дистанционное обучение - обучение на расстоянии с использованием учебников, персональных компьютеров и сетей ЭВМ.

Доказательство - последовательность суждений, обосновывающих некоторое утверждение.

Доказательное программирование - составление алгоритмов и про­грамм одновременно с доказательством их правильности.

Документ - информация, зафиксированная на материальном носи­теле, имеющем реквизиты, позволяющие его идентифицировать.

Закон достаточных оснований: «Всякое утверждение должно предпо­лагать наличие аргументов и фактов, достаточных для его обосно­вания».

Закон двойного отрицания; «Если неверно отрицание, то суждение - истинно».

Закон исключения третьего: «Истинно суждение либо его отрицание - третьего не дано».

Закон противоречия: «Не могут быть истинны одновременно сужде­ние и его отрицание».

Закон тождества: «Предмет рассмотрения должен быть строго опре­делен и не должен меняться до конца обсуждения».

Законы логики - общие законы логического вывода.

Защита информации - действия и средства по предотвращению утечки, хищению, искажению или подделки информации.

Импликация - логическое следование А ® В.

Импликация А ® В ложна, когда посылка А истинна, а следствие В ложно.

Импликация А ® В истинна, когда истинно следствие, либо ложны и следствие, и посылка.