Задача про улитку на дереве - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста решить Определить рекурсивную функцию. Распечатать результаты трассировки. Указать вид трассировки.Указать вид рекурсии(рекурсия по значению или по аргументу)В задании все операции над списками выполняются только с элементами верхнего уровня,хотя списки могут содержать подсписки.Рекурсия выполняется только в направлении CDR списка. (УЛИТКА x A B) выдает местоположение улитки к концу наблюдений,если в начале наблюдений улитка находилась в A см от земли на B метровом дереве.Известно,что каждый солнечный ден улитка сидящая на дереве, поднимается вверх на 2 см,а каждый пасмурный день опускается вниз на 1 см.Список x содержит сведения о том,был ли соответствующий день наблюдения пасмурным или солнечным.

Решение задачи: «Задача про улитку на дереве»

textual
Листинг программы
  1. (defun Ulita (lstd a b)
  2.   (cond ((null lstd) a)
  3.         ((= (car lstd) 1) (if (= (* 100 a) b) (Ulita (cdr lstd) a b) (Ulita (cdr lstd) (+ 2 a) b)))
  4.         (t (if (zerop a) (Ulita (cdr lstd) a b) (Ulita (cdr lstd) (- a 1) b)))))
  5.  
  6. ==> ULITA
  7.  
  8. (trace Ulita)
  9.  
  10. ==> ULITA
  11.  
  12.  
  13. (ulita '(1 1 0 0 0 1 0 1 1 1) 20 1.5)
  14.  
  15.       Вход в функцию Ulita Аргументы: (1 1 0 0 0 1 0 1 1 1) 20 1.5
  16.         Вход в функцию Ulita Аргументы: (1 0 0 0 1 0 1 1 1) 22 1.5
  17.           Вход в функцию Ulita Аргументы: (0 0 0 1 0 1 1 1) 24 1.5
  18.             Вход в функцию Ulita Аргументы: (0 0 1 0 1 1 1) 23 1.5
  19.               Вход в функцию Ulita Аргументы: (0 1 0 1 1 1) 22 1.5
  20.                 Вход в функцию Ulita Аргументы: (1 0 1 1 1) 21 1.5
  21.                   Вход в функцию Ulita Аргументы: (0 1 1 1) 23 1.5
  22.                     Вход в функцию Ulita Аргументы: (1 1 1) 22 1.5
  23.                       Вход в функцию Ulita Аргументы: (1 1) 24 1.5
  24.                         Вход в функцию Ulita Аргументы: (1) 26 1.5
  25.                           Вход в функцию Ulita Аргументы: NIL 28 1.5
  26.                           Возврат из функции Ulita Результат: 28
  27.                         Возврат из функции Ulita Результат: 28
  28.                       Возврат из функции Ulita Результат: 28
  29.                     Возврат из функции Ulita Результат: 28
  30.                   Возврат из функции Ulita Результат: 28
  31.                 Возврат из функции Ulita Результат: 28
  32.               Возврат из функции Ulita Результат: 28
  33.             Возврат из функции Ulita Результат: 28
  34.           Возврат из функции Ulita Результат: 28
  35.         Возврат из функции Ulita Результат: 28
  36.       Возврат из функции Ulita Результат: 28
  37.  
  38. ==> 28

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут