Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемМаргарита Абашева
1 Основы логического программирования на языке ПРОЛОГ (продолжение)
2 Объекты данных
3 Структуры Структурные объекты (или просто структуры) - это объекты, которые состоят из нескольких компонент. Эти компоненты, в свою очередь, могут быть структурами. 1983)
4 Структуры Например, дата(14, октябрь, 2009) Это структура, состоящая из трех компонент: день, месяц, год. В данном примере все компоненты являются константами.
5 Структуры Компоненты могут быть переменными. Например, дата(Х, октябрь, 2009)
6 Структуры Все структурные объекты можно изображать в виде деревьев. Корнем дерева служит предикат, ветвями, выходящими из него - компоненты. Если некоторая компонента тоже является структурой, тогда ей соответствует поддерево в дереве, изображающем весь структурный объект.
7 Пример объекта «книга»
8 Описание структуры на Turbo-Prolog = (,..., )
9 Пример описание структуры domains предмет = книга(автор, название) автор = автор(фамилия, имя, отчество, дата_рождения) дата_рождения = дата_рождения(год, месяц, день) название, фамилия, имя, отчество = string год, месяц, день = integer студент = string
10 Пример описание структуры predicates владелец(студент, предмет) clauses владелец(Петрова, книга(автор(Пушкин, Александр, Сергеевич, дата_рождения(1799, 6, 6)), Сказки)).
11 domains предмет = книга(автор, название) автор = автор(фамилия, имя, отчество, дата_рождения) дата_рождения = дата_рождения(год, месяц, день) название, фамилия, имя,отчество = string год, месяц, день = integer студент = string
12 domains предмет = книга(автор, название) автор = автор(фамилия, имя, отчество, дата_рождения) дата_рождения = дата_рождения(год, месяц, день) название, фамилия, имя,отчество = string год, месяц, день = integer студент = string predicates владелец(студент, предмет) clauses владелец(Петрова, книга(автор(Пушкин, Александр, Сергеевич, дата_рождения(1799, 6, 6)), Сказки)).
13 Семантические модели Пролога Семантические модели нужны для объяснения смысла программы. В Прологе применяются две семантические модели: декларативная и процедурная.
14 В декларативной модели рассматриваются отношения, определенные в программе. Для этой модели порядок следования предложений в программе и условий в правиле не важен.
15 Процедурная модель рассматривает правила как последовательность шагов, которые необходимо успешно выполнить для того, чтобы соблюдалось отношение, приведенное в заголовке правила.
16 Множество предложений, имеющих в заголовке предикат с одним и тем же именем и одинаковым количеством аргументов, трактуются как процедура. Для процедурной модели важен порядок, в котором записаны предложения и условия в предложениях.
17
Определить максимум из двух чисел max(X,Y,X):-X>Y. /* если первое число больше второго, то первое число - максимум */ max(X,Y,Y):-X
18 Определить максимум из двух чисел max(X,Y,X):-X>Y. /* если первое число больше второго, то первое число - максимум */ max(X,Y,Y):-X<=Y. /* если первое число меньше или равно второму, то второе число - максимум */
19 Отсечение Отсечение (cut) на Прологе обозначается восклицательным знаком "!". Этот предикат предназначен для ограничения пространства поиска, с целью повышения эффективности работы программ. Он всегда завершается успешно.
20 Определить максимум из двух чисел max2(X,Y,X):-X>Y,!./* если первое число больше второго, то первое число - максимум */ max2(_,Y,Y). /* в противном случае максимумом будет второе число */
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.