20980

Рекурсивная обработка списковой информации

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

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

DEFUN F7_1 L COND NULL L 0 LISTP CAR L F7_1 CAR L F7_1 CDR L T IF NUMBERP CAR L CAR L F7_1 CDR L F7_1 CDR L DEFUN F7 L COND NOT LISTP L Error_Not_list T F7_1 L Определить максимальную глубину списка произвольной структуры. DEFUN F8_1 L COND NULL L 1 ATOM CAR L F8_1 CDR L T MAX 1 F8_1 CAR L F8_1 CDR L DEFUN F8 L COND NOT LIST L Error_Not_list T F8_1 L 1 Найти максимальный элемент в числовом списке...

Русский

2013-08-02

23.34 KB

6 чел.

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

Рекурсивная обработка

списковой информации.

  1.  Определить  предикат,  распознающий списки,  имеющие четное (нечетное) количество элементов.

(DEFUN F6_1 (L N)

(COND ((NULL L) (EVENP N))

(T (F6_1 (CDR L) (+ N 1)))

)

)

(DEFUN F6 (L)

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

 ((NULL L) List_is_empty)

((EQ (F6_1 L 0) T) Chislo_elementov_Chetno)

(T Chislo_elementov_Nechetno)

)

)

  1.  Подсчитать сумму всех числовых атомов в списке произвольной структуры.

(DEFUN F7_1 (L)

(COND ((NULL L) 0)

((LISTP (CAR L)) (+ (F7_1 (CAR L)) (F7_1 (CDR L))))

(T (IF (NUMBERP (CAR L)) (+ (CAR L) (F7_1 (CDR L))) (F7_1 (CDR L))))

)

)

(DEFUN F7 (L)

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

 (T (F7_1 L))

)

)

  1.  Определить максимальную глубину списка произвольной структуры.

(DEFUN F8_1 (L)    

(COND

 ((NULL L) 1)

 ((ATOM (CAR L)) (F8_1 (CDR L)))

 (T (MAX (+ 1 (F8_1 (CAR L))) (F8_1 (CDR L))))

)

)

(DEFUN F8 (L)

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

(T (F8_1 L 1))

)

)

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

(DEFUN F9_1 (L)

(COND ((NULL (CDR L)) (IF (NUMBERP (CAR L))

(CAR L)

(F9_1 (CAR L))

))

(T (IF (< (F9_1 (CAR L)) (F9_1 (CDR L)))

(F9_1 (CDR L))

(F9_1 (CAR L))

))

)

)

(DEFUN F9 (L)

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

((NULL L) List_is_empty)

  (T (F9_1 L))

)

)

  1.  Написать  функцию,  выполняющую  вычисление арифметических выражений, заданных в виде списка. Используемые операции – умножить (*), разделить (/), сложить (+), вычесть (-). При вычислении учитывать приоритет операций и скобочные выражения.

(DEFUN F10_6 (L)

(COND ((NULL (CDR L)) (IF (LISTP (CAR L)) (F10_6 (CAR L)) (CAR L))) ((LISTP (CAR L))

(SETQ L (APPEND (LIST (FUNCALL (CADR L) (F10_6 (CAR L))

(F10_6 (CADDR L)))) (CDDDR L))) (F10_6 L))

(T (SETQ L (APPEND (LIST (FUNCALL (CADR L) (CAR L) (F10_6 (CADDR L)))) (CDDDR L))) (F10_6 L))

)

)

(DEFUN F10_5 (L P)

(IF (NULL P) (SETQ L (APPEND (LIST (F10_3 (CAR L))) (CDR L))))

(COND ((NULL L) NIL)

((OR (EQ (CADR L) "*" ) (EQ (CADR L) "/" )) (APPEND (LIST (CAR L) (CADR L)) (F10_5 (CDDR L))))

(T (LIST (CAR L)))

)

)

(DEFUN F10_4 (L)

(COND ((NULL (CDR L)) NIL)

((OR (EQ (CADR L) "*" ) (EQ (CADR L) "/" )) (F10_4 (CDDR L)) )

(T (CDR L))

)

)

(DEFUN F10_3 (L)

(COND ((NULL L) NIL)

((ATOM L) L)

(T (F10_2 L))

)

)

(DEFUN F10_2 (L P)

(IF (NULL P) (SETQ L (APPEND (LIST (F10_3 (CAR L))) (CDR L))))

(COND ((NULL (CDR L)) L)

((OR (EQ (CADR L) "*") (EQ (CADR L) "/")) (SETQ L (CONS (F10_5 L P) (F10_4 L))) (F10_2 L 1))

(T (APPEND (LIST (CAR L) (CADR L)) (F10_2 (CDDR L))))

)

)

(DEFUN F10_1 (L P)

(COND ((AND (NOT (NUMBERP (CAR L))) (NOT (LIST (CAR L)))) NIL)

((AND (LISTP (CAR L)) (NULL P)) (AND (F10_1 (CAR L)) (F10_1 L 1)))

((NULL (CDR L)) T)

((NULL (CDDR L)) NIL)

((OR (EQ (CADR L) '+ ) (EQ (CADR L) '- ) (EQ (CADR L) '* ) (EQ (CADR L) '/ ))

(F10_1 (CDDR L)))

(T NIL)

)

)

(DEFUN F10 (L)

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

((NULL L) List_is_empty)

((NOT (F10_1 L NIL)) Syntax_error!)

(T (SETQ L (F10_2 L)) (F10_6 L))

)

)


 

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

32055. ПУТИ СОВЕРШЕНСТВОВАНИЯ УПРАВЛЕНИЯ ДЕНЕЖНЫМИ СРЕДСТВАМИ АО «Amanat Insurance» 1.57 MB
  Сущность и виды денежных потоков.2 Характеристика и управление расчётами денежных потоков. Методы оптимизации денежных потоков предприятия. Отчет о движении денежных средств АО mnt Insurnce.
32056. Влияние таких компонентов самосознания как дружелюбие и альтруистичность студентов педагогического факультета очной формы обучения и способов разрешения конфликтных ситуаций 838 KB
  Подходы к проблеме самосознания и история ее становления в работах отечественных и зарубежных психологов. Проблема становления подходов отечественных и зарубежных психологов к проблеме самосознания. Психологические особенности развития самосознания.
32057. Разработка и сборка солнечной батареи. Применение преобразователя для аккумулирования энергии 1.12 MB
  Снятие вольтамперных характеристик солнечной батареи. Применение DC DC преобразователя для аккумулирования солнечной энергии. Исследование характеристик солнечной батареи. Общая информация о солнечном излучении Количество солнечной энергии падающей на поверхность Земли связано с движением Солнца и зависит от времени суток и времени года.
32059. МЕТОДИЧЕСКИЕ УКАЗАНИЯ по выполнению дипломного проекта бакалавров 2.48 MB
  Сварка специальность оборудование и технологии сварки Краматорск 2011 Министерство образования и науки молодежи и спорта Украины Донбасская государственная машиностроительная академия МЕТОДИЧЕСКИЕ УКАЗАНИЯ по выполнению дипломного проекта бакалавров направление подготовки 6.050504 Сварка специальность оборудование и технологии сварки Утверждено...
32060. Формирование инфраструктуры региональной инновационной системы, обеспечивающую коммерциализацию результатов интеллектуальной собственности в Вологодской области 3.62 MB
  Схема инфраструктуры региональной инновационной системы Вологодской области, модель взаимодействия инвестиционной компании с субъектами инфраструктуры РИС Вологодской области, схема стерильной колонки с сорбентом для очистки крови, план эвакуации БУ ВО «Бизнес-инкубатор»
32061. АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ ПРЕДПРИЯТИЯ» НА ПРИМЕРЕ ОАО «НГПЭ» 1.72 MB
  Анализ финансовой отчетности — это процесс, при помощи которого оценивается прошлое и текущее финансовое положение и результаты деятельности организации. Однако при этом главной целью является оценка финансово-хозяйственной деятельности организации относительно будущих условий существования.
32062. Анализ финансовых результатов деятельности предприятия и пути их увеличения (на базе материалов ЗАО «ИЖИЦА») 927 KB
  Цель данной дипломной работы заключается в исследовании финансовых результатов деятельности предприятия и разработки мероприятий по их повышению. Объектом исследования является ЗАО «ИЖИЦА». Предметом исследования является сама методика анализа финансовых результатов и практика применения их в управленческой деятельности. Анализируемый период охватывает три года работы предприятия, т.е. 2007, 2008 и 2009 гг.
32063. Совершенствование процедур банковского аудита в современных условиях 503 KB
  Основы и этапы возникновения специального банковского аудита [2. Основные этапы формирования и развития банковского аудита [2. Институциональные основы аудита банков в Российской Федерации [3] Глава 2. Совершенствование процедур банковского аудита в современных условиях [4.