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

)

)


 

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

52854. Енергозбереження - працюємо разом 115.5 KB
  Мета: Навчати оцінювати запаси енергетичних ресурсів формувати переконаність у можливості раціонального використання природних ресурсів; навчати оцінювати побутові втрати енергії; підвести до висновку про можливість раціонального використання енергії; переконати учнів у необхідності пошуків засобів збереження енергії. Наші споживання в електроенергії змінюються в часі : доба тиждень рік. Доба Наші споживання в енергії змінюються на протязі доби частково від того в яких умовах ми живемо і частково від нашої роботи мал.1 З малюнок 1...
52855. Енергозбереження – почнемо з себе 83.5 KB
  Розширення індивідуального екологічного простору розвиток емпатії до природних об'єктів; Форма заняття: заняття студії Заняття розраховане на учнів 910 класу Обладнання: таблиці з зображенням будови атмосфери компютер підключений до мережі Інтернет свічка лампа розжарювання лампа енергозберігаюча лампа 20 21 Вт; лампа розжарювання 100 Вт; настільна лампа зі стандартним цоколем; кімнатний термометр; годинник кольорові стікери з зображенням пір року. Мета етапу сфокусувати увагу учнів на проблемі й викликати інтерес до...
52856. Енергосистема України. Споживання електроенергії. Енергозбереження 158 KB
  Споживання електроенергії. Мета: показати утворення енергосистеми України поєднання великих електростанцій і ліній електропередач; формувати вміння і навички встановлення відповідності у секторних діаграмах на основі аналізу статистичної інформації розширювати уміння усвідомлення власної значущості та можливості впливати на загальну енергозалежність країни; сформувати вміння аналізувати зміни частки різних видів електростанцій у загальному обсязі виробництва електроенергії в Україні. Символічним є те...
52857. Вулиця, на якiй я живу 30 KB
  My name is Semen. I live with my family in a big town. I live in Rivna street. My street is long. There are many green trees and flowers in our street. You can see many big houses and new shops in our street. My school is in our street too. In Rivna street you can always see many trams,buses and cars. In our street there are many men,women and children. My street is clean and nice. I like it very much
52858. About myself. My Biographical time-line 48 KB
  Мета уроку:систематизація пройденого лексико–граматичного матеріалу; формування комунікативних навичок усного мовлення; формування навичок аудіювання через прослуховування тексту з метою виділення ключової інформації; - biography to be born ballet primary school secondary school university to cheer to clap
52859. Освіта в Англії 192 KB
  Great Britain does not have a written constitution, so there are no constitutional provisions for education. The system of education is determined by the National Education Acts. It has many different faces, but one goal. Its aim is to realize the potential of all, for the good of the individual and the country. It embraces two educational purposes: first it gives a general education to all children, and second, it selects the most able and gives them more advanced education.
52861. What do you do? 47.5 KB
  James is lazy. He doesn’t like going to school. He has a quick shower every morning. He puts on his clothes, watches a cartoon. He never does his morning exercises to the radio. He eats bread and honey for breakfast. He has tea or coffee with a bar of chocolate. He never cleans his teeth. He catches the bus to school. He arrives at school late.
52862. Формування ключових та предметних компетентностей молодших школярів у контексті викликів сьогодення 90 KB
  Велику роль у цьому відіграють навчальні ігри. Їх використання підвищує інтерес дітей до навчання, сприяє створенню сприятливого психологічного клімату на уроці та розвитку активності учнів, а також дозволяє сконцентрувати увагу на головному – опануванні мовленнєвими навичками