Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Предикаты ввода-вывода

Директивы компилятора.

Структура программы на Turbo Prolog

 

Программа на турбо прологе состоит из семи разделов:

· директивы компилятора;

· CONSTANTS - раздел описания констант;

· DOMAINS - раздел описания доменов;

· DATABASE - раздел описания предикатов внутренней базы данных;

· PREDICATES - раздел описания предикатов;

· CLAUSES - раздел описания предложений;

· GOAL - раздел описания внутренней цели.

В начале программы можно расположить одну или несколько директив компилятора, которые дают компилятору дополнительные инструкции по обработке программы.

Директива trace применяется при отладке программы для трассировки. Трассировка предоставляет пользователю наблюдать за ходом выполнения программы. Во время исполнения программы при включенной трассировке в специальном окне трассировки будет отображаться следующая информация:

  • после слова "CALL" будет указано имя выполняемого предиката (текущая подцель) и его параметры; *
  • после слова "FAIL" будет выводиться имя текущей подцели, которая не была достигнута;
  • после слова "RETURN" будет выводиться результат вычисления текущей подцели, в случае успеха. При этом если у подцели есть еще альтернативы, к которым возможен возврат, то перед именем предиката высвечивается звездочка ("*");
  • слово "REDO" перед именем предиката указывает на то, что произошел возврат и происходит вычисление альтернативного решения.

 

DOMAINS /* раздел описания доменов */

s=string /* вводим синоним для строкового типа данных */

PREDICATES /* раздел описания предикатов */

mother(s,s) /* предикат мама будет иметь два аргумента

строкового типа */

grandmother(s,s) /* то же имеет место и для предиката

бабушка */

CLAUSES /* раздел описания предложений */

mother("Наташа","Даша"). /* "Наташа" и "Даша" связаны

отношением мама */

mother("Даша","Маша"). /* "Даша" и "Маша" также

принадлежат отношению мама */

grandmother(X,Y):- /* X является бабушкой Y, если

найдется такой Z, что */

mother(X,Z), /* X является мамой Z, а */

mother(Z,Y). /* Z является мамой Y */

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

readln – считывает строку

readint – считывает целое число

readchar – считывает символ

readreal – считывает вещественное число

readterm – считывает терм

write – запись в устройство

writef – форматный вывод данных

nl – переход на следующую строку

upper_lower – выполняет преобразования между регистрами

str_int – преобразует строку в целое число

char_int – переход от символа к ASCII-коду

Операции: +,-,*,/,div,mod, =, >, <, <=, >=, ln, log, sqrt, abs, exp, sin, cos, tan, arctan. Углы в радианах.

round - округление

true – всегда истинен

fail – всегда терпит неудачу, цель никогда не будет достигнута. Fail используется для организации поиска с возвратом. Размещение подцели в теле правила после предиката Fail бессмысленно, поскольку этот предикат всегда терпит неудачу – цель никогда не будет достигнута.

free – истинен, если аргумент - свободная переменная.

bound – истинен, если аргумент - связанная переменная, иначе ложен.

% - однострочный комментарий.

<== предыдущая лекция | следующая лекция ==>
Семантические модели пролога | Управление выполнения программы на прологе
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.