![]() |
![]() |
||
![]() |
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/ 'Библиотека по информатике' |