Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Госы Ответы 122-133.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
178.55 Кб
Скачать

Управляющие предикаты

exit Выполняет немедленный выход из программы.

fail Вынуждает завершиться предикат ложно и, следовательно, возвратиться к предыдущей точке разветвления (backtracking).

true Значение предиката всегда истинно.

! Отсечение (прекращение перебора между головой дизъюнкта и данным знаком).

Прочие стандартные предикаты

random(RealVariable) (real) – (o) Равномерное псевдослучайное число в диапазоне от 0 до 1.

random(MaxValue,RandomInt) (integer,integer) – (i,o) Равномерное псевдослучайное целое число RandomInt в диапазоне от 0 до MaxValue.

findall( Variable, Atom, ListVariable ) В списке ListVariable возвращаются все решения для переменной Variable предиката Atom.

not( Atom ) Выполняется успешно, если заданный Atom представляет собой цель, которая не достигается.

free( Variable ) Выполняется успешно, если Variable не является конкретизированной переменной.

bound( Variable ) Выполняется успешно, если Variable является конкретизированной переменной.

Арифметические и логические предикаты

В арифметических операциях могут участвовать операнды (числа и переменные), арифметические операции + (сложение), – (вычитание), * (умножение), / (деление), mod (деление по модулю), div (целочисленное деление), скобки. Приоритет выполнения операций представлен числами:            

     + , –                 

    1

    * , /                

    2

    div ,mod        

    3

    – ,+ (унарные)

    4

Логические операторы:

>

Больше

 <

Меньше

 =

Равно

 >=

Больше или равно

 <=

Меньше или равно

 < >

Не равно

Арифметические функции:      

        sin(Х)

Синус, угол в радианах

        cos(Х)

Косинус, угол в радианах

        tan(Х)

Тангенс, угол в радианах

        arctan(Х)

Арктангенс

        ln(Х)

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

        log(Х)

Логарифм десятичный

        abs(X)

Модуль аргумента

        exp(Х)

Экспонента

        sqrt(Х)

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

Кроме этих предикатов, в Прологе имеется большой набор стандартных предикатов для построения графических объектов. Просмотреть названия и поточный шаблон стандартных предикатов графики можно в разделе HELP меню интегрированной среды Пролога.

Факты и правила

Логическое программирование — это направление современного про­грам­мирования, возникшее первоначально в рамках работ по ис­кусствен­ному интеллекту и получившее свое развитие во второй половине вось­мидесятых годов, благодаря японскому проекту ЭВМ пятого по­ко­ле­ния. Наиболее полное выражение идеи логического программирования наш­ли в языке Prolog (PROgramming in LOGic — программирование в терминах логики). Первоначальный вариант языка Prolog был разработан под руководством Алэна Кольмероэ (Alain Colmerauer) в Марсельском уни­верситете в 1972 году. В настоящее время существуют разнообразные версии для DOS (PDC Prolog, Arity Prolog и др.), Windows (Visual Prolog, Strawberry Prolog, Trinc Prolog и др.), Linux (Arity Prolog, Visual Prolog и др.).

Теоретической основой Prolog является раздел символьной логики, на­зы­ва­емый исчислением предикатов. Prolog присущ ряд свойств, ко­то­ры­ми не об­­ладают традиционные языки программирования, что делает его мощным сред­ством в области логического программирования. К та­ким свойствам от­но­сят­­ся механизм вывода с поиском и возвратом, встро­ен­ный ме­ханизм со­постав­ле­­ния с образцом и простая, но вы­ра­зи­тель­ная струк­тура данных с возможностью ее изменения. В Prolog отсут­ству­­ют ука­за­те­ли, операторы при­сва­ивания и GOTO. Естественным ме­то­дом про­грам­ми­ро­вания является ре­кур­сия.

Программа на Prolog есть совокупность утверждений. Утверж­де­ния состоят из целей. В конце утверждения ставится точка «.». Иногда ут­­вер­ж­дение называется предложением.

Основная операция Prolog — доказательство целей, входящих в ут­­верж­дение.