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))

)

)


 

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

67063. Інтелектуальна гра з інформатики «Найрозумніший» 169.5 KB
  Представлення учасників А допомагати у проведенні конкурсу нам буде шановане журі представлення журі Розпочинаємо І тур. Журі стежить за відповідями учасників та веде підрахунки. У випадку невизначеності учасників ІІ туру задаються додаткові питання.
67064. Урок навчання грамоти «В гості прийшла білосніжна зима» 138.5 KB
  Мета: закріплювати в учнів уміння читати слова і текст з вивченими буквами методами ейдетики; розвивати фонематичний слух, спостережливість, увагу, логічне мислення, пам’ять, творчу фантазію; виховувати любов до природи, до тварин. Обладнання: ілюстрації зими, магнітофонний запис, сніжинки, малюнки різних тварин, таблиці складів, роздатковий матеріал.
67066. Інтегрований урок з хімії 53.5 KB
  Мета: поглибити знання учнів по хімії, сформувати уявлення про тісний зв'язок хімії з іншими навчальними предметами та про важливість знань з хімії для освіченої, ерудованої людини; формувати пізнавальний інтерес, розвивати логічне мислення, розширити кругозір учнів...
67067. Искусство эффективного слушания 34 KB
  Применить на практике навыки эффективного слушания на занятиях Оценить приоритеты эффективного слушания для говорящего и слушающего Материалы: листы бумаги маркер. Напишите на бумаге цветными маркерами основные понятия искусства слушать: Находиться рядом с говорящим; Узнавать мнение и позицию говорящего...
67068. Материки южного полушария 3.34 MB
  Цели и задачи: систематизировать и обобщить знания о материках южного полушария (общие географические закономерности, рельеф, климатические условия, гидроресурсы, растительный и животный мир, природные комплексы материков); применять имеющиеся знания в поисках решения проблемных ситуаций...
67070. Свято дитячої іграшки 198.66 KB
  Захід проводиться у святково-прикрашеній актовій залі гімназії. Учням запропоновано прийти на захід з своїми улюбленими іграшками. Ведуча. Доброго дня, дорогі друзі, шановні гості! Щиро вітаємо вас в нашій залі та гостинно запрошуємо на ... Богдан. Зачекай, Насте, нехай присутні самі здогадаються, який захід чекає на них сьогодні.
67071. ПОЛЕ ЧУДЕС «ПРОГНОЗ ПОГОДИ». СЕРІЯ ІГОР 101 KB
  Серію ігор міжпредметного характеру «Поле чудес «Прогноз погоди» проводять учні 10 – 11 класів під керівництвом вчителя фізики для учнів початкової та середньої ланок під час тижня фізики. Девіз заходу: навчився сам – навчи іншого. Мета серії ігор «Поле чудес «Прогноз погоди»: сформувати вміння орієнтуватися в оточуючому середовищі...