Реферат на тему:
Числові функції.
Числові функції виконують основні математичні операції над цілими та дробовими числами. Користувач може обрати для роботи точну або наближену раціональну арифметику. Для точної раціональної арифметики розмір цілих чисел, чисельників та знаменників обмежений приблизно до 25000 десяткових знаків.
Примітивними числовими функціями є додавання
, відніманн
я
, множення
та ділення
. В мові програмування Лісп вони є n-арними, тобто кількість їхніх аргументів необмежена. Синтаксис числових функцій наступний:
1. (+ num1 num2 ... numM) 3. (* num1 num2 ... numM)
2. ( - num1 num2 ... numM) 4. (/ num1 num2 ... numM)
Функція додавання повертає суму своїх аргументів. Функція віднімання повертає різницю першого аргумента та суми всіх інших аргументів. Функція множення повертає добуток своїх аргументів. Функція ділення повертає частку від ділення першого аргумента та добутку інших аргументів.
$ (+ 2 4 6 7) $ (- 20 3 5 6) $ (* 2 4 6) $ (/ 24 2 2 3)
19 6 48 2
Функції збільшення
та зменшення
мають наступний синтаксичний вигляд:
1. (ADD1
n). Повертає значення, яке на одиницю більше за аргумент.
2. (SUB1
n). Повертає значення, яке на одиницю менше за аргумент.
3. (INCQ
sym n) Збільшує значення символа sym на число n.
4. (DECQ
sym n) Зменшує значення символа sym на число n.
Якщо функцію додавання (віднімання) одиниці запустити без аргументів, то виникне переривання по помилці: недостатня кількість аргументів. Якщо у функцію INCQ або DECQ передати один аргумент - символ, то збільшення (зменшення) значення символа відбудеться на одиницю. Окрім того, що функції INCQ та DECQ повертають результат арифметичної дії, значення символів, які передаються до них як аргументи, змінюється.
$ (ADD1 6) $ (SUB1 10)
7 9
$ (SETQ S 10) $ (INCQ S 14) $ (DECQ S 4)
10 24 30
Функції MIN
та MAX
повертають символ з відповідно мінімальним
(максимальним
) значенням.
1. (MIN n1 n2 ... nM). $ (MIN 12 3 45 67) $ (MAX 1 2 5 3)
2. (MAX n1 n2 ... nM). 3 5
Числові вирази в Ліспі записуються в префіксній формі. Вираз 3*5+5*7 для обчислення треба подати у вигляді (+ (* 3 5) (* 5 7)), вираз (3+6)*7 — у вигляді (* (+ 3 6) 7).
Функції порівняння
менше та більше мають n аргументів.
1. ( < n1 n2 ... nM) Повертає істину, якщо n1 < n2 < ... < nM.
2. ( > n1 n2 ... nM) Повертає істину, якщо n1 > n2 > ... > nM.
3. ( /= n1 n2 ... nM) Повертає істину, якщо існують хоча б два числа, які не дорівнюють одне одному.
До функцій порівняння
також відносяться <= , = та >=.
$ (< 2 4 6) $ (>= 5 3 3 2) $ ( /= 4 4 5)
T T T
$ (< 6 6 8 15) $ (<= 6 6 8 15) $ ( /= 4 4 4)
NIL T NIL
Функції
округлення
(TRUNCATE
m n), (ROUND
m n), (CEILING
m n) (FLOOR
m n)
Ці функції використовуються для округлення дробових чисел до цілих. TRUNCATE виконує округлення до ближчого цілого у напрямку нуля. ROUND виконує округлення до ближчого цілого по значенню до m/n. CEILING виконує округлення до ближнього цілого по верхній межі, FLOOR — по нижній межі. Виклик будь-якої функції з двома аргументами (<f> m n) еквівалентний виклику функції з одним аргументом: (<f> (/ n m)), де f — будь-яка з наведених чотирьох функцій.
$ (TRUNCATE 6/4) $ (TRUNCATE -6/4)
1 -1
$ (CEILING 9 4) $ (CEILING -9 4)
3 -2
$ (FLOOR 6 4) $ (FLOOR -6 4)
1 -2
$ (FLOOR 6/4) $ (FLOOR -6/4)
1 -2
Функції
остачі
(REM
m n), (MOD
m n), (DIVIDE
m n)
Примітивнафункція REM повертаєостачувідділеннячисла m на n. Функція MOD працюєяк REM, алеповертаємодульостачі. Якщо (TRUNCATE m n) повертає q, а (REM m n) повертає r, то m=q*n+r. Функція (DIVIDE m n) повертаєконс, CAR якогодорівнюєчастці, а CDR — остачівідділення m на n.
$ (REM 6 4) $ (DIVIDE 7 2) $ (REM -6 4) $ (MOD 6 4)
2 (3 . 1) -2 2
Знак числа
(SIGNUM
n)
Повертає значення -1, 0 або 1 якщо n відповідно від’ємне, 0, або додатне.
Модуль числа
(ABS
n) – Модуль числа n.
Чисельник та знаменник
(NUMERATOR
n), (DENOMINATOR
n) – чисельник та знаменник числа n.
$ (signum -5/3) $ (abs -5/3)
-1 5/3
$ (numerator 10/8) $ (denominator 10/8 )
5 4
Побітові
логічні
функції
(LOGAND
n1 n2...nM), (LOGIOR
n1 n2 ... nM),
(LOGXOR
n1 n2...nM), (LOGNOT
n).
$ (LOGAND 5 7 3) $ (LOGIOR 4 2 1)
1 7
$ (LOGXOR 5 2 3) $ (LOGNOT 6)
4 -7
Бульові
функції
(NOT
об’єкт) – заперечення
(AND
форма1 форма2 ... формаN) – кон’юнкція
(OR
форма1 форма2 ... формаN) – диз’юнкція
$ (AND (EQL ‘as ‘as) (< 2 4)) $ (OR NIL (< 4 56)) $ (NOT (EQL ‘d ‘g))
T T T
Зсув
(SHIFT
m n) — зсув числа m на n бітів.
Якщо m - додатне, то функція повертає результат зсуву числа n вліво на m бітів. Якщо m - від’ємне, то число n зсувається вправо на -m бітів.
(DEFUN SHIFT (N M)
( (AND (INTEGERP N) (INTEGERP M))
((ZEROP M) N)
((PLUSP M) (SHIFT (* N 2) (SUB1 M)) )
(SHIFT (TRUNCATE N 2) (ADD1 M))
)
(BREAK (LIST 'SHIFT N M) '"Noninteger Argument" )
)
$ (SHIFT 3 1) $ (SHIFT 3 -1) $ (SHIFT 4 -8) $ (SHIFT 3 5)
6 1 0 96
$ (SHIFT D 10)
Noninteger Argument Break: (SHIFT D 10)
НСД
,
НСК
(GCD
n1 n2 ... nM)
(LCM
n1 n2 ... nM).
Ціфункціїзнаходятьвідповіднонайбільшийспільнийдільник M чиселтанайменшеспільнекратне.
$ (GCD 24 66 600) $ (LCM 24 66 600)
6 6600
Ірраціональні
та
трансцендентні
функції
У файлі irratnal.lsp міститься великий набір ірраціональних та трансцендентних функцій. Аргументи тригонометричних функцій задаються в радіанах.
1. (EXP
x) експонента ex
2. (EXPT
x y) степінь xy
3. (LOG
x y) логарифм logy
x. Якщо y не задано, основа вважається рівною e.
4. (LN
x) натуральний логарифм
5. (SQRT
x) квадратний корінь
6. (ISQRT
x) ціла частина з квадратного кореня
7. (SIN
x) та (ASIN
x) сінус та арксінус
8. (COS
x) та (ACOS
x) косинус та арккосинус
9. (TAN
x) та (ATAN
x) тангенс та арктангенс
10.(RANDOM
n) генерується натуральне число, менше за n.
|