В статье логические функции, мы уже говорили о том, что очень
часто логические функции используются для
организации циклов. Ну а в этом посту речь пойдет о логических функциях,
которые применяются в циклах. А также о
функция, которые и создают циклы. Вообще цикл – это способ организации
операций повторяющихся большое и не очень количество
раз.
Функция if, выполняет операцию, если то иначе.
Например, если а больше б выполняется условие с , а если а меньше б
выполняется условие д. Надеюсь вы поняли. Работает с любыми типами аргументов. Синтаксис вида:
( if <условие> <выражение 1> <выражение 2>) Возвращает вычисленное значение аргумента выражение 1
если соблюдается условие или выражение 2, если условие не соблюдается.
Пример:
(if
(< x y) 3 4)- возвращает 3,
если x < y, и 4 если x >y , либо равен ему.
Функция progn используется для объединения
нескольких выражений в одно. Часто
используется вместе с функцией if. Так как функция if может
работать только с двумя выражениями. Синтаксис:
(progn <выражение1> <выражение2 > …….) Аргумент может быть любого типа.
Пример:
(if (> a
b)
(progn
(setg c ( - h
2))
(setg h (* 2
3))
); конец
progn
(progn
(setg c ( - h
10)
(setg h (* 20
30))
); конец
progn
); конец
if
Функция cond,
используется для объединения нескольких условий со своими выражениями в одно.
Синтаксис:
(cond [<условие 1><выражение
1><выражение2>….] [<условие2><выражение1><выражение2>…..]
…..)
Итак, мы переходим к изучению самих функций для организации
циклов. Таких функций две (по крайне
мере мы рассмотрим две из них)
И первая функция while, которая выполняет
множество операций по проверяемому условию. Синтаксис:
(while <условие> <выражение
1> <выражение2> ……N).
Функция на каждом шаге вычисляет условие и если оно истинно, то вычисляет выражение
и так до тех пор, пока условие не станет ложным. Поэтому, чтобы программа не зациклилась на
каком то этапе условие должно стать ложным.
Пример:
( setg I ( + '( 1) '( 1) )
(while (< i 10)
Здесь функция while ,будет прибавлять к I единицу пока та не станет равной 9, как
только это произойдет цикл
закончится. Знак апострофа ' всегда надо
ставить перед числовыми константами. Сначала
мы переменной i присвоили значение равной двум ( + 1 1). А далее запустили цикл, как только I стало
равным 10 условие стало ложным и значению I было присвоено последние выражение, то
есть i равное 9.
Вторая функция – это repeat, выполняющая цикл с фиксированным количеством повторений.
Синтаксис:
(repeat <количество > ( выражение 1) …) Тип
аргумента количество - целое число, не
вещественное.
(repeat ' (5)
(setg h (1+ h))
); конец repeat.
Аргумент h будет увеличен на 1 пять раз.
Ну вот мы и рассмотрели функции для циклов, конечно не все
и не очень подробно, но достаточно для
одного поста. Думаю будут еще статьи в которых мы более подробно рассмотрим на
примерах функции repeat
и while .
Тем более есть еще важные функции из этого контекста.
Изучайте AutoLISP – это интересно.
Комментариев нет:
Отправить комментарий