|
Я это делаю Персональное меню Голосование Поиск по сайту Реклама
Статистика |
Содержание Операторы и их свойства | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Операторы | Структура |
| 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
Смотрите так же
![]() | Статьи | ||||||||||||||||||
|
Последняя модификация: 22.08.05 23:25
Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>
Цитирование материалов моего сайта приветствуется! при условии видимой действующей! гиперссылки на мой сайт. [Ссылки] Если Вы нашли опечатку на этой странице, пожалуйста, выделите ее мышью и нажмите Ctrl+Enter. Сделаем язык чище! (c) Yuri Popoff, 2004 - 2008, popoff.donetsk.ua, style.donetsk.ua |