|
Я это делаю Персональное меню Голосование Клуппы Yato ![]() Деньги, но неинтересная работа и невозможность уделить время семье Интересная работа, возможность саморазвиваться, но нищенский заработок Ваш возраст (не обязательно) Почему? (не обязательно) Голосование закрыто. Поиск по сайту Реклама Статистика |
Содержание Операторы и их свойства |
Операторы | Структура |
a+b*c | +( a, *( b, c)) ) |
Хотя в Прологе, все структуры данных представляют собой термы, операторы записывают в привычной инфиксной форме
(+, -, *, /, <, >, >=,=<, =)
Пример:
Пусть известна информация о странах на 1980 год ( название, численность населения, площадь территории). Определить плотность населения.
Страна | Площадь, тыс. кв. км | Население | |
млн. | тыс | ||
Великобритания | 244.1 | 57 | 57000 |
Бельгия | 30.5 | 9.85 | 9850 |
Исландия | 30.5 | 0.224 | 224 |
Испания | 507.7 | 37.5 | 375000 |
Т.к. пишем на классическом Прологе не учитывая разрядность, то будем вычислять плотность в тыс. чел. на тыс. кв. км.
население("Великобритания", 57000). |
население("Бельгия", 9850). |
население("Исландия", 224). |
население("Испания", 507.7). |
плотность( X, Y):- население( X, P), площадь( X, H), Y is P/H |
is - этот оператор присутствует в классическом Прологе,
в Турбо-Прологе его нет.
Оператор означает вычислить арифметическое
выражение.
? - плотность( X, Y). | "Назвать страны и их плотности населения" |
X=Великобритания, Y=233,5108 | |
X=Бельгия, Y=322,9508 | |
X=Исландия, Y=2,1747 | |
X=Испания, Y=74,3015 |
Встроенные предикаты - определены:
X = Y | X < Y | X > Y | X >= Y | X <= Y | X \=Y |
Известна информация о президентах Российской АН в IX веке.
Пример:
руководил("Уваров", 1818, 1855). |
руководил("Блудов", 1855, 1864). |
руководил("Литке", 1864, 1882). |
руководил("Толстой", 1882, 1889). |
президент( X, Y) :- руководил( X, H, K ), Y>=H, Y=>K |
Запросы:
? - президент("Уваров", 1825). | "Действительно ли Уваров был президентом в 1825 году" |
да | |
? - президент( _, 1900). | "Был ли президент РАН в 1900 году" |
нет |
Инфиксный оператор ? - X=Y
Когда делается попытка доказать согласованность с базой данных такого целевого утверждения, Пролог пытается установить соотвествие между X и Y. Этот предикат работает так, как будто в базе данных есть факт, что X равен самому себе.
Переменные:
Правило согласования для цели X=Y
Смотрите так же
![]() | Клуппы Yato | ||||||||||||||||||
|
Последняя модификация: 22.08.05 23:25
Попробовал вставить материал в лекцию на скорую руку, получилась. Спасибо. Но только после чтения мат логики и хорновских форм
Просмотреть все комментарии в режиме форума. Всего комментариев: 2
Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки] Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище! (c) Yuri Popoff, 2004 - 2008, popoff.donetsk.ua, style.donetsk.ua |