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

)

)


 

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

69094. Кросплатформне програмування. Створення DLL-бібліотеки 53.28 KB
  Запустимо Visual Studio 2008, із стартової сторінки перейдемо до створення проекту, виберемо тип проекту «Class Library». У вікні створення DLL всі поля заповнені значеннями за замовчанням. Як правило, їх слід перевизначити, задаючи власну інформацію. У полі Name задати ім’я DLL – MyLib.
69095. Створення компонентів Windows Forms 83.5 KB
  Запустіть Visual Studio 2008, із стартової сторінки перейдіть до створення проекту, виберіть шаблон проекту Windows Forms Application. У вікні Solution Name введіть ім’я Рішення Lab2. Вкажіть шлях до розміщення рішення в папці К-81. У вікні дизайнера змініть ім’я класу форми.
69096. Елементи керування: перемикачі і прапорці 54.5 KB
  Написати програму розрахунку вартості замовлення друку фотографій. Написати програму розрахунку вартості автомобіля в залежності від комплектації. Написати програму обчислення поточного дня з початку року вашого дня народження.
69097. Елементи керування: Списки 60 KB
  Для цього у вікні коду проекту виділимо ім’я змінної об’єкту, потім в головному меню виберемо пункт Refactor і підпункт Rename. У вікні, що відкрилося, вкажемо нове ім’я. Тоді будуть показані всі місця, що вимагають перейменування об’єкту, як це видно з рисунку. Натисніть кнопку Apply.
69099. Архитектура БД ORACLE 3.15 MB
  Система управления базами данных, СУБД (Database Management System DBMS), является одним из важнейших компьютерных инструментов в современных организациях. В большинстве компаний СУБД используют для записи транзакций и ведения бухгалтерского учета.
69100. Моделирование реляционной БД 703.5 KB
  Описание систем в виде объектов и взаимоотношений Модель реляционной базы данных Нормальные формы Введение В материалах предыдущей лекции были рассмотрены основные понятия связанные с архитектурой БД ORCLE. В частности: Определение СУБД; Основное назначение БД; Категории файлов данных.