Определить функцию (pr1 k n m) - Lisp

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

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

Помогите решить пожалуйста Определить функцию (pr k n m),где m-число строк,которая печатается в виде k k+1...n k k+1...n n+1 ... k k+1...n+m-1 Пример >(pr 1 2 3 5) 23 234 2345 23456 234567

Решение задачи: «Определить функцию (pr1 k n m)»

textual
Листинг программы
  1. (defun pri (k n)
  2.   (cond ((> k n) t)
  3.         (t (princ k) (pri (+ k 1) n))))
  4.  
  5. (defun task (k n m)
  6.   (pri k n) (terpri)
  7.   (if (= m 1) 'ok (task k (+ n 1) (- m 1))))
  8.  
  9. ==> TASK
  10.  
  11. (task 2 3 5)
  12. 23
  13. 234
  14. 2345
  15. 23456
  16. 234567
  17.  
  18. ==> OK

Объяснение кода листинга программы

В коде определены две функции:

  1. Функция pri с двумя аргументами k и n.
  2. Функция task с тремя аргументами k, n и m. В функции pri происходит проверка условия: если k больше n, то возвращается t (истина), иначе вызывается рекурсивно функция pri с увеличенным на 1 значением k и неизменным значением n. В функции task происходит следующее:
  3. Вызывается функция pri с аргументами k и n.
  4. Выводится символ новой строки (terpri).
  5. Если значение m равно 1, выводится сообщение ok, иначе вызывается рекурсивно функция task с увеличенным на 1 значением k, увеличенным на 1 значением n и уменьшенным на 1 значением m.

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


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

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

9   голосов , оценка 3.556 из 5

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

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

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