ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Програмування керуючих структур. Функції COND, PROGN, REPEATРозвитий мова програмування повинна забезпечувати реалізацію керуючих структур типу "розгалуження" і "цикл". Такі структури реалізуються на Автоліспі за допомогою функцій IF і WHILE (див. п.2.4). Функції, розглянуті нижче, розширюють можливості програмування керуючих структур. Функція COND реалізує керуючу структуру ВИБІР з декількох варіантів дій і дозволяє замінити використання багаторазово вкладених IF. (COND (<умова1> < вираз1!>...)...) Тут < вираз > - будь-яка послідовність функцій Автоліпа. Функція реалізується в такий спосіб: обчислюється <умова1> і, якщо воно виконується, те обчислюється <вираз1>. На цьому функція роботу закінчує, повертаючи значення останнього виразу. Але якщо <умова1 > не виконується, те цей вираз обчислюватися не буде. Тоді функція COND переходить до перевірки наступнї <умови 2> і т.д., тобто буде виконаний тільки той вираз, який випливає за першою умовою, що виконується. Приклад: (COND ((> А 0) (SETQ У "PLUS")) ((= А 0) (SETQ У "ZERO")) ((< А 0) (SETO У "MINUS")) (Т NIL) ) Якщо перед виконанням цієї функції в змінну А було записано позитивне число, то в результаті обчислення функції в У буде записаний текст "PLUS", функція поверне "PLUS". Аналогічно відпрацьовують випадки, коли виявиться, що А=0 і А<0. Якщо ж А взагалі не число, то функцію, яка виконується, COND знайде в останньому рядку. При цьому ніяких дій здійснено не буде, функція поверне NIL. Функція PROGN є допоміжною для конструювання функції IF. Нагадаємо, що функція IF записується так: (IF <умова> <функція1> [<функція2>]) Часто виявляється необхідним, щоб при виконанні <умови> обчислювалася не одна <функція1 >, а послідовність функцій. Це і дозволяє зробити PROGN. (PROGN <функція>...) Функція PROGN поєднує послідовність функцій у "макрофункцію". PROGN повертає значення останньої функції в послідовності. Приклад: (IF(> = А 0) (PROGN (SETO B (/ 1 А)) (SETQ C (SQRT B)) (SETQ У "А <= 0") ) Тут, якщо А > =0, обчислюються В и С (і повертається значення С), інакше повертається текст "А< =0". Без функції PROGN таку конструкцію не удалося б реалізувати. Функція REPEAT дозволяє реалізувати цикл у деяких специфічних ситуаціях більш зручно, чим функція WHILE, а саме тоді, коли заздалегідь відоме число кроків циклу: (REPEAT <число < вираз >) Тут < число> повинне мати ціле позитивне значення. Вираз обчислюється задане число раз. Повертається значення останньої виконаної функції. Приклад: (SETQ STR "МАТЕРІАЛ:") (REPEAT 3 (SETQ S (GETSTRING)) (SETQ STR (STRCAT STR S)) ) Тут тричі з клавіатури вводяться текстові рядки, що "зчіплюються" з початковим рядком "МАТЕРІАЛ". Не нашли, что искали? Воспользуйтесь поиском:
|