Лаборатория No4

Лабораторна работа No4.

Предикати. Част 2.

Обективен: Получете представа за предикатите на Visual Prolog.

Задачата: Внедрете нова версия на програмата за рисуване на карти.

4.1. Започнете с логическите свързвания на Visual Prolog.

4.2. Научете за значението на Visual Prolog.

4.3. Определение на клауза за клаксон.

4.4. Деклариране на типове потоци и шаблон.

4.5. Декларации за режим на детерминизъм.

4.6. Рисуване на предикати

4.7. GDI обект. Създайте нов проект drawMap.

4.1. Логически съединители.

Ако P1 и P2 са предикати, P1 И P2 е равно вярно ако и двете P1 и P2 са равни вярно. Поредица от предикати, свързани чрез логически И се нарича конюнкция. В Prolog предикатите за съвпад са разделени със запетаи:

Изводът е куп, представен от символа :-, което означава ако. Поради това,

drawThem (Win): - връзки (Win), drawCities (Win).

означава, че вие нарисувай ги На Печеля, ако рисувате връзки На Печеля и drawCities На Печеля.

4.3. Изреченията на Хорн.

Клаузата на Хорн може да бъде единичен предикат. Например, следващият списък съдържа четири клаузи с един предикат Horn.

град ("Солено езеро", pnt (30, 40)).

град ("Йелоустоун", pnt (200, 100)).

Изреченията с един предикат на Хорн се наричат ​​факти. В този пример фактите установяват връзка между един град и неговите координати. Домейнът на тези предикати е набор от двойки, състоящ се от името на града и неговите координати. Изречението на Хорн също може да приеме формата

където Ti и H са предикати. Така,

е пример за предложението на Хорн. В изречението на Хорн, частта, разположена преди знака :-, Наречен глава - глава (заглавие). Частта след знака :- Наречен опашка - опашка. В примера главата е drawThem (Win), и опашката - връзки (Win), drawCities (Win).

Набор от клаузи Horn със същото заглавие определя предикат. Например четирите градски клаузи на Хорн определят сказуемото град/2, и

drawThem (Win): - връзки (Win), drawCities (Win).

drawThem: (windowHandle) процедура (i).

Декларацията на типа казва, че аргументът Печеля предикат drawThem (Win) е от тип windowHandle. Декларацията за режим посочва, че аргументът drawThem/1 трябва да бъде въведена, тоест това е константа, а не свободна променлива. В този случай предикатът взема данни чрез своя аргумент.

Ако се предполага, че предикатът се използва само вътре в своя клас, той се декларира като клас предикат Е предикат на класа. Примери: