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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

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

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

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

  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).

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

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

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.