20981

Конструирующая рекурсия

Лабораторная работа

Информатика, кибернетика и программирование

DEFUN F11_2 X L COND NULL L T = 0 REM X CAR L NIL T F11_2 X CDR L DEFUN F11_1 X Y S IF = 2 Y SETQ S NIL SETQ S F11_1 N Y 1 COND AND = 0 REM X Y F11_2 Y S CONS Y S T REVERSE S DEFUN F11 N COND OR NOT INTEGERP N NOT PLUSP N Error_Not_Integer = N 1 NIL T F11_1 N N Реверсировать элементы списка произвольной структуры на всех уровнях. DEFUN F12_1 L COND NULL L ' ATOM CAR L APPEND F12_1 CDR L LIST CAR L LISTP CAR L APPEND...

Русский

2013-08-02

20.47 KB

1 чел.

Лабораторная работа № 3.

Конструирующая рекурсия.

  1.  Сформировать список простых множителей заданного числа.

(DEFUN F11_2 (X L)

(COND ((NULL L) T)

((= 0 (REM X (CAR L))) NIL)

(T (F11_2 X (CDR L)))

)

)

(DEFUN F11_1 (X Y S)

(IF (= 2 Y)

(SETQ S NIL)

(SETQ S (F11_1 N (- Y 1)))

)

(COND ((AND (= 0 (REM X Y)) (F11_2 Y S)) (CONS Y S))

(T (REVERSE S))

)

)

(DEFUN F11 (N)

(COND ((OR (NOT (INTEGERP N)) (NOT (PLUSP N))) Error!_Not_Integer)

((= N 1) NIL)

(T (F11_1 N N))

)

)

  1.  Реверсировать элементы списка произвольной структуры на всех уровнях.

(DEFUN F12_1 (L)

(COND ((NULL L) '())

((ATOM (CAR L)) (APPEND (F12_1 (CDR L)) (LIST (CAR L))))

((LISTP (CAR L)) (APPEND (F12_1 (CDR L)) (LIST (F12_1 (CAR L)))))

)

)

(DEFUN F12 (L)

(COND ((NOT (LISTP L)) Error!_Not_list!)

((NULL L) List_is_Empty!)

(T (F12_1 L))

)

)

  1.  Линеаризовать список произвольной структуры.

(DEFUN F13_1 (L)

(COND ((NULL L) NIL)

((LISTP (CAR L)) (APPEND (F13_1 (CAR L)) (F13_1 (CDR L))))

(T (CONS (CAR L) (F13_1 (CDR L))))

)

)

(DEFUN F13 (L)

(COND ((NOT (LISTP L)) Error!_Not_list!)

((NULL L) List_is_Empty!)

(T (F13_1 L))

)

)

  1.  Сформировать список, являющийся пересечением двух заданных линейных списков.  Повторяющиеся в исходных списках элементы должны входить в результирующий список не более одного раза.

(DEFUN F14_1 (L1 L2 P)

(COND ((NULL L2) P)

((AND (MEMBER (CAR L2) L1) (NOT (MEMBER (CAR L2) P)))

(SETQ P (CONS (CAR L2) P))

(SETQ P (F14_1 L1 (CDR L2) P)))

(T (SETQ P (F14_1 L1 (CDR L2) P)))

)

)

(DEFUN F14 (L1 L2)

(COND ((OR (NOT (LISTP L1)) (NOT (LISTP L2))) Error!_Not_list!)

((NULL L1) NIL)

((NULL L2) NIL)

(T (F14_1 L1 L2))

)

)

  1.  Сформировать список чисел ряда Фибоначчи (см. задание N 5) от первого числа до числа с заданным номером включительно.

(DEFUN F15_1 (M N P H)

(SETQ H (+ (CAR P) (CDR P)))

(IF (< M N)

(CONS H (F15_1 (+ M 1) N (CONS H (CAR P))))

(LIST H)

)

)

(DEFUN F15 (N)

(COND ((NOT (NUMBERP N)) Error!_Not_number!)

((<= N 0) Error!_Wrong_number!)

((EQ N 1) '(1))

((EQ N 2) '(1 2))

(T (CONS 1 (CONS 2 (F15_1 3 N))))

)

)


 

А также другие работы, которые могут Вас заинтересовать

66388. СТРАТЕГИИ ПРЕОДОЛЕНИЯ СТУДЕНТАМИ ПСИХОЛОГИЧЕСКИХ БАРЬЕРОВ ПРИ АУДИРОВАНИИ ИНОЯЗЫЧНОЙ РЕЧИ 254 KB
  Проблема психологических барьеров достаточно полно представлена в зарубежной психологии З. В отечественной психологии широко представлены исследования раскрывающие сущность и виды психологических барьеров: смысловые Л. и этносоциокультурных барьеров В.
66389. Развитие самообразовательной компетентности студентов в процессе проектной деятельности 281.5 KB
  Особую важность развития СК исследователи связывают с её значимость для профессионально-личностного роста специалиста И. Представляется важным сделанное рядом авторов заключение о том что СК выступает как системообразующая стержневая так как она детерминирует формирование...
66390. ФИТОНИМИЧЕСКАЯ ЛЕКСИКА В ХУДОЖЕСТВЕННОЙ ПРОЗЕ Е.И. НОСОВА 178.5 KB
  Актуальность диссертации обусловлена возрастающим вниманием лингвистов к изучению языковой личности Е.И. Носова; стремлением к многоаспектному описанию отдельных пластов лексики, в частности названий растений и растительных организмов...
66391. ПРИНЦИП СИМПАТІЇ У ФІЛОСОФСЬКІЙ АНТРОПОЛОГІЇ 244 KB
  Осмислення симпатії як морального і психологічного явища в європейській філософській традиції започатковується ще в Античності але особливо актуальним стає у моралістиці новоєвропейської філософської традиції. Проте тема симпатії не належить до того кола проблем що мають наскрізну історію вивчення аналізу й оцінки.
66392. РОЗШИРЕННЯ МОЖЛИВОСТЕЙ ВІБРАЦІЙНОЇ ОБРОБКИ ПЛОСКИХ ДЕТАЛЕЙ НА ОСНОВІ УДОСКОНАЛЕННЯ ТЕХНОЛОГІЧНОЇ СИСТЕМИ 724.14 KB
  На сьогодні одним зі шляхів розвитку машинобудування є виготовлення деталей машин високої якості, довговічність і надійність яких значною мірою залежать від точності їх виготовлення, оптимальних фізико-механічних властивостей поверхневих шарів поверхонь, що сполучаються.
66393. МАТЕМАТИЧНІ МЕТОДИ ДІАГНОСТУВАННЯ ФІНАНСОВОЇ СТАБІЛЬНОСТІ БАНКІВСЬКОГО СЕКТОРУ УКРАЇНИ 283 KB
  В умовах розвитку ринкової економіки в Україні та зростання інтеграції до світової економічної спільноти першочергового значення набуває проблема підвищення фінансової стабільності банківського сектору країни що включає в себе такі системні характеристики...
66394. Клінічний перебіг гострого калькульозного пієлонефриту у хворих на цукровий діабет та удосконалення його комплексного лікування з урахуванням стану вегетативної нервової системи (клініко-експериментальне дослідження) 990.5 KB
  Однією з найбільш важливих, складних проблем в урології та медицині в цілому є інфекційно-запальні ускладнення, значення яких з відомих причин медичного, соціального, економічного характеру з часом зростає. Частота їх розвитку стає загрозливою, що знаходить відображення...
66395. ФІНАНСОВА СТРАТЕГІЯ ТОРГОВЕЛЬНИХ ПІДПРИЄМСТВ В УМОВАХ НЕСТАБІЛЬНОГО ЕКОНОМІЧНОГО СЕРЕДОВИЩА 315.5 KB
  Розвитку фінансової діяльності торговельних підприємств на сучасному етапі притаманний ряд недоліків. Ці недоліки фінансової діяльності суттєво знижують рівень її ефективності внаслідок чого протягом останніх років більш ніж третина торговельних підприємств є збитковими.
66396. ВНУТРІШНЬОАРТЕРІАЛЬНА ПОЛІХІМІОТЕРАПІЯ РАКУ МОЛОЧНОЇ ЗАЛОЗИ. УСКЛАДНЕННЯ, ЇХ ПРОФІЛАКТИКА ТА ЛІКУВАННЯ 272 KB
  Місцеворозповсюджені форми раку молочної залози вважаються прогностично несприятливими і лише впровадження сучасних схем хіміогормонотерапії в клінічну практику зокрема внутрішньоартеріальних інфузій хіміопрепаратів дозволило декілька покращити результати лікування хворих.