Главная

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

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

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

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

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

)

Тут тричі з клавіатури вводяться текстові рядки, що "зчіплюються" з початковим рядком "МАТЕРІАЛ".






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

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