Задача про улитку на дереве - Lisp
Формулировка задачи:
Помогите пожалуйста решить
Определить рекурсивную функцию. Распечатать результаты трассировки. Указать вид трассировки.Указать вид рекурсии(рекурсия по значению или по аргументу)В задании все операции над списками выполняются только с элементами верхнего уровня,хотя списки могут содержать подсписки.Рекурсия выполняется только в направлении CDR списка.
(УЛИТКА x A B) выдает местоположение улитки к концу наблюдений,если в начале наблюдений улитка находилась в A см от земли на B метровом дереве.Известно,что каждый солнечный ден улитка сидящая на дереве, поднимается вверх на 2 см,а каждый пасмурный день опускается вниз на 1 см.Список x содержит сведения о том,был ли соответствующий день наблюдения пасмурным или солнечным.
Решение задачи: «Задача про улитку на дереве»
textual
Листинг программы
(defun Ulita (lstd a b) (cond ((null lstd) a) ((= (car lstd) 1) (if (= (* 100 a) b) (Ulita (cdr lstd) a b) (Ulita (cdr lstd) (+ 2 a) b))) (t (if (zerop a) (Ulita (cdr lstd) a b) (Ulita (cdr lstd) (- a 1) b))))) ==> ULITA (trace Ulita) ==> ULITA (ulita '(1 1 0 0 0 1 0 1 1 1) 20 1.5) Вход в функцию Ulita Аргументы: (1 1 0 0 0 1 0 1 1 1) 20 1.5 Вход в функцию Ulita Аргументы: (1 0 0 0 1 0 1 1 1) 22 1.5 Вход в функцию Ulita Аргументы: (0 0 0 1 0 1 1 1) 24 1.5 Вход в функцию Ulita Аргументы: (0 0 1 0 1 1 1) 23 1.5 Вход в функцию Ulita Аргументы: (0 1 0 1 1 1) 22 1.5 Вход в функцию Ulita Аргументы: (1 0 1 1 1) 21 1.5 Вход в функцию Ulita Аргументы: (0 1 1 1) 23 1.5 Вход в функцию Ulita Аргументы: (1 1 1) 22 1.5 Вход в функцию Ulita Аргументы: (1 1) 24 1.5 Вход в функцию Ulita Аргументы: (1) 26 1.5 Вход в функцию Ulita Аргументы: NIL 28 1.5 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 Возврат из функции Ulita Результат: 28 ==> 28
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д