Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Сновні поняття мови alisp




Програма – це послідовність функцій ALISP і функцій, створених користувачем.

Коментар – це будь-який текст після знаку;. Коментарі не обробляються інтерпретатором, а служать для кращого розуміння програми.

Атом (тип даних в ALISP). Атоми – це елементарні об′єкти, із яких формуються вирази ALISP. Атоми бувають типів:

- константи (дійсні, текстові (рядкові), логічні);

- змінні (символьні імена).

У AutoLISP використовуються три види констант: числові, рядкові та логічні. Вони не можуть представляти інші об'єкти LISP, крім самих себе або свого власного значення.

Числові константи можуть бути різного типу, наприклад:

746; ціле число

-3.14; десяткове число

3.055Е8; число, представлене мантисою і порядком.

Цілі числа можуть задаватись в межах від – 32768 до +32767. Цілі числа без знаку від 0 до 65535. для чисел з великим порядком використовується символ Е, що означає 10 в степені…

12.5Е8 = 12,5 * 108;

В ALISP також визначена константа, яка позначається РІ. Вона має значення 3,1415926.

Рядкові константи— це послідовність знаків, які записані в лапках.

Довжина текстової константи не більше 100 знаків. Якщо в тексті зустрічається знак «\», то його слід подвоїти, наприклад «\\», оскільки символ «\» використовується для введення керуючих символів: \n – перевід рядка, \r - повернення каретки, \t - табуляція.

Логічні константи — це Т — істина і NIL — неправда.

Константи і символи записуються за допомогою обмеженої прогалинами послідовності знаків.

Атоми — найпростіші об'єкти LISP, з яких будуються інші структури, і вони являють собою символи або константи.

Упорядкована послідовність, елементами якої є атоми або списки (підсписки), називається списком (list). Списки беруть в круглі дужки, елементи в них розділяються прогалинами.

Приклад:

(a_d_(c_d)_e)

Список — це багаторівнева або ієрархічна структура даних, у якій відкриваючі і закриваючі дужки знаходяться в строгій відповідності.

Атоми і списки — це основні типи даних мови LISP, вони називаються символьними виразами або S-виразами (S-expression).

Списки можуть інтерпретуватися як дані і як програми (функції).

Для того щоб скористатися мовою AutoLlSP, досить у відповідь на підказку Command: редактора AutoCAD ввести яку-небудь конструкцію мови AutoLlSP. Після введення конструкції AutoLlSP (тобто після натискання клавіші <ENTER>) негайно здійснюється її виконання і видається результат виконання.

Приклад:

Command: (+ 2 3) <ENTER>

 

Змінна, як і в математиці, - це об′єкт, який має ім′я і значення. Конкретне значення змінна приймає в процесі виконання програми.

Змінні формуються з будь-яких символів, крім знаків «()», «,», «.», «”», «:», «′», прогалина та перевід рядка. Першим символом повинна бути літера.

Крім перерахованих атомів визначено поняття «порожній атом», який позначається NIL, що означає «нічого», тобто атом, який не має ніякого значення.

Приклади запису атомів

-10 0.0 Цілі константи 15.4 -15.39Е9 Дійсні константи
“ABCD” “Вкажіть точку” “\ n Введіть дані” Текстові константи А2 ABCD WANT_DANI Змінні

 

Список – складений елемент програми з атомів або інших списків, розділених прогалинами “_”. Список завжди записується в дужках:

(A_B1_C2) – атоми списка – змінні.

(“A”_”AC”) – атоми – текстові константи.

Неправильні записи:

A B C – відсутні дужки.

(A_(B_C) – число дужок, що відкриваються, більше тих, що закриваються…

У LISP використовується префіксная форма запису обчислень, при якій як ім'я функції, так і аргументи записуються усередині дужок.

Використовуване в LISP так називане функціональне програмування ґрунтується на тій простій ідеї, що в результаті кожної дії виникає значення. Значення стають аргументами наступних дій, і кінцевий результат усієї задачі видається користувачеві.

Програми будуються з логічно розчленованих визначень функцій. Визначення складаються з, організуючих обчислення, керуючих структур і з вкладених, часто викликаючих самих себе (рекурсивних) функцій. Основними засобами функціонального програмування саме і є композиція і рекурсія. Крім функціонального програмування в LISP можна використовувати програмування, основане на звичайному послідовному виконанні операторів із присвоюваннями, передачами керування і спеціальних операторів циклу.

AutoLlSP працює в режимі інтерпретації. Усередині інтерпретатора “сидить” обчислювач, що виконує наступні дії:

визначає перший елемент, що є ім'ям виконуваної функції;

визначає наступні елементи, що є аргументами, необхідними для виконання заданої функції.

Отже функція – окремий випадок списка, і має формат: (ім′я функції_аргумент). Наприклад: (sin_PI),

де- sin – ім′я функції, _ - прогалина, PI – аргумент;

(+_а_в),

де + - ім′я функції, _ - прогалини, а, в – аргументи.

Всі функції можна розділити на 3 групи:

- перша – вбудовані функції ALISP, імена яких і правила виконання відповідають інструкціям ALISP;

- друга – функції користувача;

третя – функції, описан в інших програмах, які користувач підмикає до своєї

Виконання програми на ALISP полягає в тому, що інтерпретатор читає текст чергової функції і після завершення читання виконує її.

Опис нової функції (функції користувача) в ALISP розпочинається з службового слова defun, а далі вказується ім′я функції та список аргументів:

(defun_ім′я функції_(A_B_/C_D_L)

)

 

A і B – глобальні змінні, C, D, L – локальні змінні.

Програма 1

Приклад запису програми для рішення виразу: y=a sin(ώt), де а=0,05; ώ=15,7рад./с; t=0.1.

Мова C Мова ALISP
#include<math.h> main() {float y; float a=0.5, omega=15.7, t=0.1; y=a*sin(omega*t); } (defun Y () (setq a 0.05 omega 15.7 t 0.1) (setq Y (* a (sin (* omega t)))) )

Програма 2

Обчислення суми sin(A)+cos(A)

(defun sincos(A); ім′я функції і список аргументів (А)

(+ (sin A) (cos A)); вираз sin(A)+cos(A)

); defun – кінець програми

Для виконання програми необхідно в командному рядку ACAD набрати:

Command: (sincos 0) Результат в виводиться в командному рядку: 1 (кут в радіанах) sin 0 + cos 0 = 1.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...