![]() |
|
|
![]()
|
|
| hkdkest |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 30.11.2008 Репутация: 1 Всего: 1 |
Пролог - это язык программирования, предназначенный для представления и использования знаний о некоторой предметной области. Под предметной областью будем понимать множество рассматриваемых объектов и совокупность знаний о них. Любую взаимосвязь между объектами и (или) их свойствами назовем отношением. Так, например, для предметной области "Студенческая группа" характерными объектами будут студент, его фамилия, имя, отчество, номер группы, наименование факультета, номер специальности, курс обучения, изучаемые дисциплины, оценки, полученные на экзаменах, размер стипендии и т.д. Связи между конкретным студентом и номером группы, между его оценками и размером стипендии, между номером группы и факультетом, специальностью, курсом обучения будут являться отношениями. Таким образом, «Предметная область – это объекты и отношения».
Объекты могут быть объединены в классы, обладающие определенными свойствами. Элементы этих классов являются конкретными объектами предметной области. Для представления конкретного объекта в программе на Прологе используется константа. Константа – это число или символическое имя объекта. Имена конкретных объектов, отношений, свойств образуются по определенным правилам, зависящим от версии (реализации) языка Пролог, и называются символическими именами. Ниже рассмотрим правила, характерные для большинства версий Пролога. • ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ С ПОМОЩЬЮ ПРОГРАММЫ НА ПРОЛОГЕ - Prolog Все утверждения программы на Прологе делятся на факты, правила и вопросы. Факты отражают текущее состояние предметной области и содержат конкретную информацию. Факты всегда истинны и соответствуют простым безусловным высказываниям. Они описывают истинные в предметной области отношения (истинные предикаты). Рассмотрим пример описания меню в ресторане. • ФАКТЫ - Prolog Чтобы познакомиться с работой интерпретатора Пролога, введем в ЭВМ факты о блюдах в ресторане. • ПРАВИЛА РАБОТЫ В ИНТЕРПРЕТАТОРЕ ПРОЛОГА - Prolog • РЕЖИМ РЕДАКТИРОВАНИЕ - Prolog • РЕЖИМ ПОПОЛНЕНИЕ И ОБНОВЛЕНИЕ БЗ - Prolog • РЕЖИМ КОНСУЛЬТАЦИЯ - Prolog • ВОПРОСЫ ИЛИ ЦЕЛЕВЫЕ УТВЕРЖДЕНИЯ - Prolog • ПЕРЕМЕННЫЕ - Prolog • ПРАВИЛА - Prolog • КОНЪЮНКЦИЯ ЦЕЛЕВЫХ УТВЕРЖДЕНИЙ - Prolog • ПОПОЛНЕНИЕ БАЗЫ ЗНАНИЙ - Prolog Задание: описать предметную область "Расписание занятий" с помощью программы на языке Пролог. • Описание предметной области Расписание занятий с помощью программы на языке Пролог - Prolog |
|||
|
||||
| hkdkest |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 30.11.2008 Репутация: 1 Всего: 1 |
Продолжение:
Итерационные процессы. Процесс, состояние которого на текущем шаге зависит от состояния этого же процесса на предыдущих r шагах, называется многошаговым итерационным процессом и описывается следующими рекурентными соотношениями: y0=a0, y1=a1,...,yr-1=ar-1; (1a) (начальные условия) yk=f(yk,yk-1,yk-2,...,yk-r,X); (1б) (текущий момент) (1) k=r, r+1, ..., ..., k=N, (1в) (условие окончания) где f - произвольная функция, которая может быть задана аналитически, словесно, в виде алгоритма и т. д.; yi - состояние процесса на i-м шаге; X - параметры процесса. • РЕКУРСИЯ - Prolog • Программа вычисления значений выражений - Prolog • УПРАВЛЕНИЕ ВЫПОЛНЕНИЕМ ПРОГРАММЫ С ПОМОЩЬЮ ПРЕДИКАТОВ FAIL И REPEAT - Prolog В математике рекурсия определяется как способ описания объектов, данных, процессов или функций через самих себя. Рекуррентные соотношения (1) представляют собой как раз такое описание. В них процесс на n-ом шаге определяется через тот же самый процесс на n-1-м шаге. Чтобы перейти к рекурсивному определению в программе, необходимо для описания процесса определить предикат, который обращался бы к самому себе (т.е. к описанию того же процесса) при других значениях аргументов (например, при другом номере шага K!=K-1). При этом как бы допускается, что уже имеется описание процесса, которое правильно выполняется для аргумента K-1 и, следовательно, позволяет получить состояние yk-i на предшествующем шаге. Например, рекуррентным соотношениям, описывающим процесс вычисления факториала F=N! (пример 1) и вычисления чисел Фибоначчи (пример 2), можно поставить в соответствие следующие программы на Прологе. • ВВЕДЕНИЕ В РЕКУРСИЮ - Prolog • КАК ПИСАТЬ РЕКУРСИВНЫЕ ОПРЕДЕЛЕНИЯ - Prolog • НИСХОДЯЩАЯ РЕКУРСИЯ - Prolog • ВОСХОДЯЩАЯ РЕКУРСИЯ - Prolog • ВВЕДЕНИЕ В ОТСЕЧЕНИЕ - Prolog • ВОЗДЕЙСТВИЕ ОТСЕЧЕНИЯ НА ВЫПОЛНЕНИЕ - Prolog • ИСПОЛЬЗОВАНИЕ ОТСЕЧЕНИЯ - Prolog • ЛОВУШКИ ОТСЕЧЕНИЯ - Prolog Список - это упорядоченная последовательность элементов, которая может иметь произвольную длину. Порядок расположения элементов в последовательности является существенным. Элементами списка могут быть любые термы - константы, переменные, списки, структуры, которые включают, конечно, и другие списки. Списки позволяют представить практически любой тип структуры данных, который может потребоваться при обработке символьной информации. Списки широко используются для представления деревьев и синтаксического разбора, грамматик, карт городов, программ для ЭВМ и математических объектов, таких как графы, формулы и функции. • ВВЕДЕНИЕ В СПИСКИ - Prolog • ГОЛОВА И ХВОСТ СПИСКА - Prolog • УНИФИКАЦИЯ СПИСКОВ КАК АРГУМЕНТОВ ПРЕДИКАТОВ - Prolog • ПРИНАДЛЕЖНОСТЬ ЭЛЕМЕНТОВ СПИСКУ - Prolog • ВВОД, ВЫВОД СПИСКА КАК ТЕРМА - Prolog • ИСПОЛЬЗОВАНИЕ ПРЕДИКАТА ПРИСОЕДИНИТЬ - Prolog • ИСПОЛЬЗОВАНИЕ ПРЕДИКАТА ПРИСОЕДИНИТЬ ДЛЯ РАЗДЕЛЕНИЯ СПИСКА - Prolog |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Компьютерная литература | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |