Скачать 60.16 Kb.
|
Структура программы на Прологе Программа на Прологе состоит из следующих разделов:
В программе не обязательно должны быть все разделы. Однако, как правило, программа содержит, по меньшей мере, разделы PREDICATES и CLAUSES. В программе может быть несколько разделов описаний CONSTANTS, DOMAINS, PREDICATES, DATABASE и CLAUSES, а GOAL не может быть более одного. Порядок разделов может быть произвольным, но при этом константы, домены и предикаты должны быть определены до их использования. Однако в разделе DOMAINS можно ссылаться на домены, которые будут объявлены позже. Директивы компилятора В самом начале программы можно расположить одну или несколько директив компилятора, которые дают компилятору дополнительные инструкции по обработке программы. Директива trace применяется при отладке программы для трассирования. Директива nowarnings используется для подавления предупреждения системы о том, что какая-то переменная встречается в предложении только один раз. С помощью директивы include при компиляции в исходный текст можно вставить содержимое некоторого файла. Многие директивы компилятора могут быть не только расположены в тексте программы, но и установлены в меню среды разработки Пролога. Значение директивы компилятора, указанное в тексте программы, имеет более высокий приоритет, чем значение, установленное в меню. Раздел описания констант Объявление константы имеет вид: <�имя константы>=<�значение> Каждое определение константы должно размещаться в отдельной строке. Например: CONSTANTS pi=3.14 pro_path="c:\\prolog " Раздел описания доменов Раздел описания доменов является аналогом раздела описания типов. В Прологе имеются стандартные домены, которые не нужно указывать в разделе описания доменов. Основные стандартные домены: integer - целое число (из промежутка -32768...32767); real - действительное число (лежащее между ±1e-307...±1e308); char - символ, заключенный в одиночные апострофы; string - последовательность символов, заключенная в двойные кавычки; symbol - символическая константа; file - файл. В разделе описания доменов объявляются любые нестандартные домены, используемые в качестве аргументов предикатов. Объявление домена имеет следующий вид: <�имя домена>=<�определение домена> DOMAINS i=integer Из доменов можно конструировать составные или структурные домены (структуры). Раздел описания предикатов внутренней БД Начинается раздел описания предикатов внутренней БД с зарезервированного слова DATABASE и описываются в нем те предикаты, которые можно в процессе выполнения программы добавлять во внутреннюю БД или удалять оттуда. Описываются предикаты БД аналогично предикатам в разделе описания предикатов PREDICATES. Раздел описания предикатов В данном разделе содержатся описания определяемых пользователем предикатов. В традиционных языках программирования подобными разделами являются разделы описания заголовков процедур и функций. Описание n-местного предиката имеет следующий вид: <�имя предиката>(<�имя домена первого аргумента>,...,<�имя домена n-го аргумента>). Домены аргументов должны быть либо стандартными, либо объявленными в разделе описания доменов. Например, предикат, описывающий отношение "мама" может быть описан следующим образом: PREDICATES mother(string,string) Один предикат может иметь несколько описаний, а процедура, реализующая этот предикат, будет единственной. Это нужно, чтобы предикат работал с аргументами различной природы. PREDICATES member(integer,integer*) member(real,real*) member(char,char*) member(string,string*) Раздел описания предложений Этот раздел можно считать основным разделом программы, потому что именно в нем содержатся факты и правила, реализующие пользовательские предикаты. Все предикаты, которые применяются в этом разделе и не являются стандартными предикатами, должны быть описаны в разделе описания предикатов или в разделе описания предикатов базы данных. Набор предложений называется процедурой. Программу на Прологе принято оформлять по следующим правилам:
Эти правила не являются обязательными, но они делают программу более "читабельной". Раздел описания внутренней цели Если этот раздел отсутствует, то после запуска программы Пролог-система выдает приглашение вводить вопросы в диалоговом режиме (внешняя цель). При выполнении внешней цели Пролог-система ищет все решения, выводя все возможные значения для переменных, участвующих в вопросе. Если же выполняется внутренняя цель, то осуществляется поиск только первого решения. Программа, компилируемая в исполняемый файл, обязательно должна иметь внутреннюю цель. Внешнюю цель применяют на этапе отладки программы. Предикаты ввода-вывода Пролог имеет отдельные предикаты для чтения с клавиатуры или из файла данных целого, вещественного, символьного и строкового типа. Предикат readln считывает строку с текущего устройства ввода и связывает ее со своим единственным выходным параметром. Предикат readint читает с текущего устройства целое число и связывает его со своим единственным выходным параметром. Предикат readreal отличается от предиката readint тем, что он считывает не целое, а вещественное число. Для чтения символа с текущего устройства ввода используется предикат readchar. Есть еще предикат inkey, который так же, как и readchar, читает символ со стандартного устройства ввода. Разница между ними в том, что предикат readchar приостанавливает работу программы до тех пор, пока не будет введен символ, а предикат inkey не прерывает выполнение программы. Предикат readterm предназначен для чтения сложных термов. У него два параметра: первый входной указывает имя домена, второй параметр конкретизируется термом домена, записанного в первом параметре. Для записи данных в текущее устройство записи служит предикат write. Он может иметь произвольное количество параметров. Кроме того, в Прологе есть еще и предикат writef, который служит для форматного вывода данных. Для осуществления перехода на следующую строку (возврат каретки и перевод строки) применяется предикат nl, не имеющий параметров. Группа предикатов для преобразования типов: str_int преобразует строку в целое число и наоборот. str_real служит для превращения строки в вещественное число или вещественного числа в строку. Предикат str_char применяется для преобразования односимвольной строки в один символ и наоборот. Предикат char_int позволяет переходить от символа к его ASCII-коду и обратно. Арифметические операции (+, -, * и /), а также целочисленное деление (div) и взятие остатка от деления одного целого числа на другое (mod). Для сравнения чисел можно воспользоваться операциями =, <>, >, >=, <, <=. Математические функции: логарифмы натуральный (ln) и десятичный (log), квадратный корень (sqrt), модуль (abs), экспонента (exp), синус (sin), косинус (cos), тангенс (tan), арктангенс (arctan). Функция trunc отбрасывает дробную часть своего параметра, а функция round округляет вещественное число до ближайшего целого. В Турбо Прологе любой текст, находящийся между символами /* и */, рассматривается как комментарий. Кроме того, любой текст между символом % и концом строки также воспринимается как комментарий. Комментарий игнорируется компилятором Пролога. |
Структура программы Паспорт Программы 3 Пояснительная записка 5 Цели... «Региональный открытый социальный техникум», Льговский филиал техникума, родители студентов |
Структура программы Целевой раздел образовательной программы |
||
Пояснительная записка структура курса 6 класс структура курса 7 класс Рабочая программа по биологииспециальной (коррекционной) школы VIII вида разработана на основе авторской программы под редакцией... |
Образовательная программа Программа подготовки специалистов среднего звена Специальность Примерная структура образовательной программы и примерные рабочие программы |
||
Психолого-педагогические основы программы 6 Принципы построения программы... В. А. Сухомлинский верно заметил: «Я не боюсь еще и еще раз повторить: забота о здоровье – это важнейший труд воспитателя. От жизнерадостности,... |
Маоу «Гимназия №1»г. Сосновоборска Структура основной образовательной программы основного общего образования Гимназии 16 |
||
Структура рабочей программы группы №10 Описание образовательной деятельности по освоению детьми образовательных областей |
2. Структура информационного канала. Информационно-логическая структура доказывания 3 Процессуально-познавательные функции общей информационной модели механизма расследуемого события |
||
Пояснительная записка. 4 Структура программы и основные направления... Система коррекционно-развивающей работы в логопедической группе для детей с онр. Организация образовательной деятельности 11 |
Содержание Паспорт Программы развития введение Организационно-педагогическая структура (сведения об обучающихся, режим работы школы) |
||
Структура программы развития I. Паспорт Программы развития. II. Актуальность... Настоящая Программа определяет стратегию развития детского дома и действия по её реализации |
Ooo "св-робот" Компьютерные курсы рабочая программа Переменные, операции, выражения в php. Типы переменных. Изменение типа переменной. Динамические переменные. Константы. Комментарии.... |
||
Структура учреждения и структура управления Директор учреждения Учреждения, представляет его во всех учреждениях, предприятиях и иных организациях |
Структура программы на pl/sql Он представляет собой расширение языка sql и предназначен для работы с субд oracle |
||
Структура образовательной программы Миссия, цели, задачи, приоритетные... Документы, регламентирующие обеспечениекомплексной безопасности образовательного процесса |
Структура рабочей программы обучения английскому языку в 6 классе Умк «New Millennium English» для 6 класса общеобразовательных учреждений/ Н. Н. Деревянко, С. В. Жаворонкова и др. – Обнинск: Титул,... |
Поиск |