ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Підпрограми, розгалуження і цикли. Логічні функції. Функції WHILE і IF.Програма 3. Квадрат з вписаним колом (DEFUN CQUADR (); заголовок описуваної функції ; Задамо початкову точку - лівий нижній кут квадрата: (SETQ P1 (GETPOINT "\n Початкова точка:”)) ; Задамо довжину квадрата: (SETQ L (GETDIST “\n Довжина сторони:")) ; визначимо три вершини квадрата, що залишилися: (SETQ Р2 (POLAR P1 0.0 L)) (SETQ P3 (POLAR P2 (/ PI 2) L)); кут = PI/2 (SETQ P4 (POLAR P3 PI L)); кут = PI ; Побудуємо квадрат на екрані: (COMMAND "LINE" P1 P2 РЗ Р4 "C") ; (Тут "С" задає опцію "Замикання") ;Визначимо радіус кола: (SETQ R (/ L 2));R = L/2 ; Визначимо центр кола PC: (SETQ PR (POLAR P1 0.0 R));PR - точка торкання ; на нижній стороні (SETQ PC (POLAR PR (/ PI 2) R)) ; Побудуємо коло на екрані: (COMMAND "CIRCLE" PC R)); Кінець опису функції QUADR ); defun Зверніть увагу на трохи незвичайне ім'я функції - C:QUADR. Символ "C:" дозволяє створити за допомогою функції QUADR нову команду AutoCAD ”QUADR”.
Підпрограми, розгалуження і цикли. Логічні функції. Функції WHILE і IF.
У будь-якій мові програмування є засоби для створення підпрограм, циклів, розгалужень у програмах у залежності від результатів перевірки умов. Такі засоби є й в Автоліспі. Підпрограма дозволяє описати деяку послідовність дій один раз, а використовувати її в різних місцях програми і навіть включати в інші програми, що значно спрощує програмування. Для цих цілей в Автоліспі служить вже відома функція DEFUN. Опис деякої функції за допомогою DEFUN і можна вважати підпрограмою, а звертання до описаної раніше функції - викликом підпрограми. При звертанні на місце символічних аргументів в описі функції підставляються значення цих змінних. Наприклад, описана в Програмі 1 функція SINCOS(A) може розглядатися як підпрограма. А рядок (SINCOS 0.0), який зустрічається в якій-небудь програмі, є звертанням до цій підпрограми, причому аргумент А приймає значення 0. Розгалуження в програмі організуються за допомогою функції IF:
(IF <умова> <функція1> [<функція2>]) Тут < умова> - такий вираз Автоліспа, який серед інших значень може в якійсь ситуації одержати значення NIL. Функція IF обчислює значення умови і, якщо воно не NIL, те виконує < функцію1 >, інакше - виконує <функцію2>, якщо та присутня. Функція IF повертає результат виконання функції. Таким чином, функція IF відповідає керуючій структурі псевдокоду ЯКЩО - ТО - ІНАКШЕ. Для запису умов найчастіше використовуються функції, що назвемо логічними. До них відносяться функції = (дорівнює) < (менше) > (більше) /= (не дорівнює) < = (менше або дорівнює) > = (більше або дорівнює), які дозволяють виконувати порівняння чисел або текстів, а також функції AND, OR, NOT, що забезпечують можливість будувати складні умови з простих. Усі ці функції можуть повертати одне з двох значень: NIL ("ні", умова не виконується) або Т ("так", умова виконується). Наприклад, функція " = " має вигляд: (= <атом> <атом>...) Тут як атоми можуть стояти або числа (як цілі, гак і речовинні), або текстові дані. Функція повертає Т, якщо всі атоми рівні між собою, інакше - NIL. Функція "/=" визначена тільки для двох атомів. Функція "<": (< < атом> <атом>... ) Якщо кожен попередній атом менше наступного, то повертається Т, інакше - NIL. Аналогічно визначаються інші функції порівняння. Для текстових констант поняття "менше" означає наступне: порівняння виконується по першій літері. "Меншим" вважається той символ, ASCII-код якого менше. Для літер алфавіту коди наростають за абеткою (окремо для заголовних, окремо для малих літер). Функції AND, OR, NOT є функціями алгебри логіки. (AND <вираз>...) Функція виконує операцію логічного “І” над списком виразів, тобто функція повертає NIL, якщо хоча б один вираз має значення NIL. Інакше повертається Т. (OR <вираз>...) Виконується операція логічного “АБО”. Повертається Т, якщо хоча б один вираз має значення Т, інакше - NIL. (NOT < вираз >) Виконується логічна функція “НІ”. Якщо вираз має значення NIL, то повертається Т, у всіх інших випадках повертається NIL. Приклади: Нехай маються.наступні значення: А = 5 В = "ТЕХТ1” С = NIL Тоді (= А 5) повертає Т (= А 5.0) - Т (>= A 10) - NIL (< У “ТЕХТ2") -Т (AND А В С) - NIL (OR А В С)-Т (NOT З) - Т (OR(= A5)(= A 10))-Т Наведена нижче Програма 4 ілюструє розгалуження за умовою з використанням функції IF. Не нашли, что искали? Воспользуйтесь поиском:
|