Программирование в Turbo Prolog'e (Списки)
Формулировка задачи:
Здравствуйте.
Всю жизнь работал и работаю в Си, а тут вот возникла такая ситуация что пришлось начать программировать в Turbo Prolog'e . И вот столкнулся с такой проблемой как "списки"... Есть 2 задачи которые я понимаю как решить, но от не знания языка ничего не выходит.
Работу нужно сдать завтра, а у меня одна каша в голове.
Вот эти задачи:
1) Добавить подсписок в указанную позицию
2) Удвоить значения положительных элементов списка и утроить значения его отрицательных элементов.
Буду очень благодарен за полное решение двух данных задач.
Решение задачи: «Программирование в Turbo Prolog'e (Списки)»
textual
Листинг программы
p([A|B],C,D):- !, p(B,[A|C],D). p(_,A,A).
Объяснение кода листинга программы
Код представляет собой реализацию рекурсивной функции p
для обработки списков в языке программирования Prolog.
Вот список, описывающий, что делает код:
p([A|B],C,D)
- функция принимает три аргумента: списокA
, списокB
и значениеC
.- Если
B
пустой, то функция возвращаетC
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
равноD
, то функция возвращаетC
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
не равноD
, то функция возвращаетD
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
равноD
, то функция возвращаетC
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
не равноD
, то функция возвращаетD
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
равноD
, то функция возвращаетC
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
не равноD
, то функция возвращаетD
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
равноD
, то функция возвращаетC
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
не равноD
, то функция возвращаетD
. - Если
B
не пустой, то функция рекурсивно вызывает саму себя с аргументамиB
,[A|C]
иD
. - Если
B
пустой иC
равноD
, то функция возвращаетC
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д