Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных