Код
(setq m nil);количество атомов
(setq A '( 11 12 13 14 15 16 ( 11 12 13 14) 18));список
(setq a1 2);левая граница
(setq a2 6);правая граница
//(setq a1 (getint "element1:"))
//(setq a2 (getint "element2:"))
(setq p (- a2 a1)); количество элементов в "нужной части"
(setq n a1)
(while (> n 0);отрезаю "голову" списка, чтобы оставить только нужную для анализа часть
(progn
(cdr A)
(- n 1))
)
(setq z 0)
(while (> p 0) ; Проверяю является ли текущий элемент списка атомом
(progn
(if (= Atom(nth z 'A) T)
(+ 1 m) ; Если да, то увеличиваю m
)
(+ z 1)); наращиваю z, чтобы посмотреть след. элемент списка
(setq p (- p 1)); Пока не просмотрю все элементы из нужной части
)
(print m); Вывод m
(setq A '( 11 12 13 14 15 16 ( 11 12 13 14) 18));список
(setq a1 2);левая граница
(setq a2 6);правая граница
//(setq a1 (getint "element1:"))
//(setq a2 (getint "element2:"))
(setq p (- a2 a1)); количество элементов в "нужной части"
(setq n a1)
(while (> n 0);отрезаю "голову" списка, чтобы оставить только нужную для анализа часть
(progn
(cdr A)
(- n 1))
)
(setq z 0)
(while (> p 0) ; Проверяю является ли текущий элемент списка атомом
(progn
(if (= Atom(nth z 'A) T)
(+ 1 m) ; Если да, то увеличиваю m
)
(+ z 1)); наращиваю z, чтобы посмотреть след. элемент списка
(setq p (- p 1)); Пока не просмотрю все элементы из нужной части
)
(print m); Вывод m
Вроде всё нормально, не уверен с проверкой на то, является ли элемент атомом, просто не очень удобный Компилятор, не понимаю, что не так...