НОВОСТИ   БИБЛИОТЕКА   ЮМОР   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  




предыдущая главасодержаниеследующая глава

2.8. Средства, позволяющие работать с числовой информацией

Следит предупредить, что МикроПролог специально не ориентирован на работу c числовой информацией. У него другие области применения. Однако ряд имеющихся в Прологе встроенных арифметических функций чревычайно полезен практически во всех приложениях. Для вычисления значений арифметических выражений предназначен специализированный модуль EXPTRAN. В случае необходимости этот модуль должен быть загружен в оперативную память в дополнение к другим используемым в данный момент модулям. Существует также ряд включенных в стандартный синтаксис языка арифметических операций" которые можно использовать без подзагрузки дополнительных модулей. К ним относятся SUM, TIMES, LESS, INT и SIGN. Все они вместе в другими отношениями и командами могут быть использованы в программах, написанных на микроПрологе. Ниже дано описание этих арифметических операций, представленных в форме отношений.

SUM. Это отношение имеет вид SUM (X Y Z). Его можно интерпретировать как высказывание, которое истинно (принимает значение TRUE), если сумма X и Y равна Z, и ложно (FALSE) - во всех остальных случаях. Допускается использование целых чисел и чисел с плавающей запятой.

Например, отношения SUM (4 5 9) и SUM (0.1-1.2-1.1) истинны, а отношения SUM (5 7 22) и SUM (7.2 5.2 6.8) ложны. Покажем, как можно использовать отношение SUM.

1. Для проверки суммы в правиле программы или запросе

Пусть имеется правило

X valid if SUM (25 5 Y)

В ответ на запрос is X valid будет получено YES в случае, если Y = 30, и значение NO во всех остальных случаях.

2. Для сложения двух чисел

В результате выполнения SUM (3 5 X) переменной X будет присвоено значение 8, а в результате вычисления SUM (9 - 2 X) - значение 7.

3. Для определения разности двух чисел

В результате вычисления SUM (X 3 7) X получает значение 4, а вычисление SUM (3 X - 5) приведет к тому, что X будет равно -8.

TIMES. Это отношение можно использовать для умножения двух чисел, деления двух чисел и для проверки результата, получаемого при умножении двух чисел. Отношение представляется в виде

TIMES (X Y Z)

и принимает значение TRUE, если произведение X и Y равно Z и FALSE - во всех остальных случаях.

1. Проверка произведения

В результате проверки выражения TIMES (X 2 6) будет получен ответ TRUE, если X равен 3.

TIMES (4 7 X) дает TRUE, если X равен 28.

2. Умножение

В результате вычисления TIMES (4 5 X) X получит значение 20.

3. Деление

В результате вычисления TIMES (X 6 42) X получит значение 7. Вычисление Т1МЕС (3 X 39) приводит к тому, что X примет значение 13.,

LESS. В этом отношении используются два аргумента. LESS (X Y) примет значение TRUE, если X строго меньше, чем Y. Например, вычисление LESS (5 6) даст TRUE, в то время как вычисление LESS (5 5) - FALSE. Аргументами этого отношения также могут быть символы. Тогда сравниваются их коды. Например, ответом на запросы

is LESS (А В) и is LESS (AY AZ)

будет YES, а на запросы

is LESS (AD AC) и is LESS (& %)

будет NO.

INT. Это отношение используется для определения ближайшего к данному числу целого. Из двух возможных результатов округления выбирается тот, который ближе к нулю. Например, вычисление

which (x: 1NT (3.6 X))

приносит 3, а вычисление

which (x: INT (-3.9 X))

дает -3.

Первым аргументом отношения должно всегда быть либо число, либо выражение, результатом вычисления которого является число. Отношение INT можно использовать и для того, чтобы проверить, является ли заданное число целым.

Например, ответом на запрос

is (5 INT)

будет YES.

SIGN. Отношение имеет вид SIGN (X Y). В результате вычисления этого отношения Y будет присвоено одно из значений - 1,0 или -1 в зависимости от того, положительно, равно 0 или отрицательно X. Первым аргументом этого отношения всегда должно быть конкретное число. В результате вычисления SIGN (-2.5 Y) Y присваивается значение, равное -1. В результате выполнения SIGN (2.5 Y) Y будет равно 1.

Упражнение 2.4

Определить ответы, которые будет давать система Пролог на следующие запросы:

a) all (x: SUM (4 5 х));

б) all (x: SUM (x - 1 2));

в) all (x: SUM (5 X 2);

г) all (x: TIMES (3 6 х));

д) all (x: TIMES (4 х 8));

е) is (SUM (5 6 7));

ж) is (SUM (3 - 8 X));

з) объяснить последний ответ.

Упражнение 2.5

Определить ответы на следующие запросы:

a) all (x: SIGN (2 х));

б) all (x: ENT (-4.9 х));

в) all (x: INT (xl));

г) all (x: SIGN (x 0));

д) объяснись ответы на запроси (в) и (г).

предыдущая главасодержаниеследующая глава








© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна:
http://informaticslib.ru/ 'Библиотека по информатике'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь