Обработка символьной информации. Использование арифметических операций на нескольких простых примерах

Страницы работы

Содержание работы

Несмотря на то, что Пролог рассчитан главным образом на обработку символьной информации, всегда возникает потребность в арифметических вычислениях. Рассмотрим средства для таких вычислений.

Арифметические операции. Имеются следующие арифметические операции:

  1. Арифметические: + - * / mod (остаток от деления) div (целочисленное деление)
  2. Отношения - >, <, =, >=, <=, <>
  3. Логические: not(HE (высший приоритет)), and(И (средний приоритет)), or(ИЛИ (низший приоритет))
  4. Мат. функции: sin(X), cos(X), tan(X), arctan(X), abs(X), axp(X), Ln (X), log(X), sgrt(X)
  5. Стандартные лог. предикаты:

bitand(А, В, Е)( Логическое И (битовое)) bitor(А, В, Е)( Логическое ИЛИ (битовое)) bitxor(А, В, Е) (Исключающее ИЛИ (битовое))bitnot (A, E)( Логическое НЕ (битовое))

bitleft (A, N, Е)( Сдвиг на N битов влево) bitright (A, N, Е)( Сдвиг на N битов вправо)

Здесь

А, В - 16-битовые операнды, Е - 16-битовый результат, N     - натуральное число от 1 до 32767'.

Рассмотрим использование арифметических операций на нескольких простых примерах.

В первом примере ищется наибольший общий делитель. Если заданы два целых числа X и Y, то их наибольший общий делитель Д можно найти, используя следующие три правила.

1) Если X и Y равны, то Д равен X.

2) Если X<Y, то Д равен наибольшему общему делителю X и разности Y-X.

3) Если Y<X, то формулировка аналогична правилу 2, если X и Y поменять в нем местами.

Эти правила сформулируем в виде следующей прологовской программы, определив трехаргументное отн'ошение нод ( X, Y, Д).

/ * Программа nodvip.pro нахождения НОД */ PREDICATES

нод (integer, integer, integer)

CLAUSES

нод (X, X, X).

нод ( X, Y, Д):~ X<Y, Y1=Y-X,

% Первое правило %   Второе правило нод(Х,У1,Д).

нод (X, Y, Д):-                     % Третье правило

Y<X, нод(У,Х,Д).

GOAL

нод (12, 24, R).

Похожие материалы

Информация о работе