MaxEdu.ru

Числовi функцiї

Числовi функцiї виконують основнi математичнi операцiї над цiлими та дробовими числами. Користувач може обрати для роботи точну або наближену рацiональну арифметику. Для точної рацiональної арифметики розмiр цiлих чисел, чисельникiв та знаменникiв обмежений приблизно до 25000 десяткових знакiв.

Примiтивними числовими функцiями є додавання, вiднiмання, множення та дiлення. В мовi програмування Лiсп вони є n-арними, тобто кiлькiсть їхнiх аргументiв необмежена. Синтаксис числових функцiй наступний:

1. (+ ... ). 3. (* ... )

2. ( - ... ) 4. (/ ... )

Функцiя додавання повертає суму своїх аргументiв. Функцiя вiднiмання повертає рiзницю першого аргумента та суми всiх iнших аргументiв. Функцiя множення повертає добуток своїх аргументiв. Функцiя дiлення повертає частку вiд дiлення першого аргумента та добутку iнших аргументiв.

$ (+ 2 4 6 7) $ (- 20 3 5 6) $ (* 2 4 6) $ (/ 24 2 2 3)

19 6 48 2

Функцiї збiльшення та зменшення мають наступний синтаксичний вигляд:

1. (ADD1 n). Повертає значення, яке на одиницю бiльше за аргумент.

2. (SUB1 n). Повертає значення, яке на одиницю менше за аргумент.

3. (INCQ sym n) Збiльшує значення символа sym на число n.

4. (DECQ sym n) Зменшує значення символа sym на число n.

Якщо функцiю додавання (вiднiмання) одиницi запустити без аргументiв, то виникне переривання по помилцi: недостатня кiлькiсть аргументiв. Якщо у функцiю INCQ або DECQ передати один аргумент - символ, то збiльшення (зменшення) значення символа вiдбудеться на одиницю. Окрiм того, що функцiї INCQ та DECQ повертають результат арифметичної дiї, значення символiв, якi передаються до них як аргументи, змiнюється.

$ (ADD1 6) $ (SUB1 10)

7 9

$ (SETQ S 10) $ (INCQ S 14) $ (DECQ S 4)

10 24 30

Функцiї MIN та MAX повертають символ з вiдповiдно мiнiмальним (максимальним) значенням.

1. (MIN ... ). $ (MIN 12 3 45 67) $ (MAX 1 2 5 3)

2. (MAX ... ). 3 5

Числовi вирази в Лiспi записуються у префiкснiй формi. Вираз 3 * 5 + 5 * 7 для обчислення треба подати у виглядi (+ (* 3 5) (* 5 7)), вираз (3 + 6) * 7 - у виглядi (* (+ 3 6) 7).

Функцiї порiвняння менше та бiльше мають n аргументiв.

1. ( nM.

3. ( /= n1 n2 ... nM) Повертає iстину, якщо iснують хоча б два числа, якi не дорiвнюють одне одному.

До функцiй порiвняння також вiдносяться =.

$ (= 5 3 3 2) $ ( /= 4 4 5)

T T T

$ (0. ((ZEROP n) 1) 3628800

(* n (FACTORIAL (- n 1))) )

Якщо в рекурсивнiй програмi аргументом буде велике число, то може виникнути переповнення стеку. Використовуючи команду циклу LOOP можна уникнути екурсивного виклику. Наступна функцiя буде бiльш ефективною:

$ (DEFUN FACTORIAL1 (n rslt) $ (FACTORIAL1 10)

(SETQ rslt 1) 3628800

(LOOP

((ZEROP n) rslt ) $ (FACTORIAL 0 a)

(SETQ rslt (* n rslt)) 1

(SETQ n (- n 1)) ) )

2. Послiдовнiсть чисел, кожен елемент якої дорiвнює сумi двох попереднiх, а першi два елементи дорiвнюють 1, називається послiдовнiстю Фiбоначчi. N-те число послiдовностi Фiбоначчi F(N) може бути знайдене за рекурсивною формулою:

F(0)=1, F(1)=1, F(N) = F(N-1) + F(N-2).

$ (DEFUN FIBON (n) $ (FIBON 20)

(( b,

НСД(a, b - a), якщо a b,

НСД(a, b mod a), якщо a < b,

a, якщо b = 0.

b, якщо a = 0.

г) (INVERTBIT a n) - обернути n-ий бiт числа a.

д) (EQ2 a b c) - розв'язати квадратне рiвняння.

е) (SQTR a b c) - знайти площу трикутника за трьома сторонами (використати формулу Герона).

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике Числовi функцiї виконують основнi математичнi операцiї над цiлими та дробовими числами. Користувач може обрати для роботи точну або наближену
Оценок: 342 (Средняя 5 из 5)

Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.

Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.

© 2014 - 2022 MaxEdu.ru