[Закрыть]
 
popoff.donetsk.ua
Мудрость приходит с возрастом. Но иногда возраст приходит один.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - ДонНТУ - Функциональное и логическое программирование - Логическое программирование - Арифметика в языке Пролог
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Голосование закрыто.

Поиск по сайту
Реклама
Программное обеспечение любой сложности
koins.com.ua
Статистика

Арифметика в языке Пролог

Постоянный адрес статьи

Содержание

Операторы и их свойства

Свойства операторов:

  • арность
  • позиция
  • приоритет
  • ассоциативность
Операторы Структура
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

  1. X - неконкретезированная, Y - конкретезированная
    Если X и Y равны, то X конкретезируется тем же значением, что и Y

  2. Числа и атомы равны самим себе

  3. Две структуры равны если:
    • имеют одинаковый функтор
    • одинаковое число аргументов
    • равны соответствующие аргументы

Смотрите так же

Статьи
 
ДонНТУ
 
Функциональное и логическое программирование
 
Логическое программирование
 
Общие сведения о языке Пролог
Основные элементы языка Пролог
Арифметика в языке Пролог

Последняя модификация: 22.08.05 23:25

Обсуждение статьи в форуме

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>

07.12.12 15:09 Александр

Попробовал вставить материал в лекцию на скорую руку, получилась. Спасибо. Но только после чтения мат логики и хорновских форм

10.11.18 14:36 Natine123

Серьезно? Очень интересно!

Просмотреть все комментарии в режиме форума. Всего комментариев: 2
Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>