20983

Функционалы

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

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

DEFUN SORT FileName File1 File2 File3 File4 SETQ F OPENINPUTFILE FileName SETQ F1 OPENOUTPUTFILE File1 SETQ F2 OPENOUTPUTFILE File2 SETQ F3 OPENOUTPUTFILE File3 SETQ F4 OPENOUTPUTFILE File4 IF NOT EQ NIL F LOOP EQ NIL SETQ X READ F SORT_IS_FINISHED COND NUMBERP X WRITE X F1 LISTP X WRITE X F2 ;EQ SYM TYPE X WRITE X F3 T WRITE X F4 ERROR_WRONG_FILE_NAME .

Русский

2013-08-02

20.7 KB

3 чел.

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

Функционалы.

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

(DEFUN  F21_1  (L F K)

(COND ((NULL L)  NIL)

((FUNCALL F (CAR L)) (CONS K (F21_1 (CDR L) F (+ K 1))))  

(T (F21_1 (CDR L) F (+ K 1)))

)

)

(DEFUN F21 (L F)

(COND ((NOT (LISTP L)) ERROR!_WRONG_LIST_ARGUMENT!)

((NULL L) LIST_IS_EMPTY!)

 (T (F21_1 L F 1))

)

)

пример

(F21 ‘(-10 3 A P 4 -3 2 6 S) ‘MINUSP)  => (1 6)

 (F21 ‘(-10 3 A P 4 -3 2 6 S) ‘PLUSP)   => (2 5 7 8)

(F21 ‘(-10 3 A P 4 -3 2 6 S) ‘SYMBOLP)  => (3 4 9)

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

(DEFUN F22 (L)

(COND ((NOT (LISTP L)) ERROR!_WRONG_LIST_ARGUMENT!)

((NULL L) LIST_IS_EMPTY!)

 (T (MAPLIST '(LAMBDA(L) (APPLY + L)) L))

)

)

пример

(F22 ‘(1 1 1 1 1 1 1))  => (7 6 5 4 3 2 1)

(F22 ‘(1 2 3 4 5 6 7))  => (28 27 25 22 18 13 7)

  1.  Удалить из исходного линейного списка все вхождения заданного элемента.

(DEFUN F23 (L X)

(COND ((NOT (ATOM X)) ERROR!_WRONG_ARGUMENT!)

((NOT (LISTP L)) ERROR!_WRONG_LIST_ARGUMENT!)

((NULL L) LIST_IS_EMPTY!)

(T  (MAPCON '(LAMBDA (L)

(IF (EQ (CAR L) X)

NIL

(LIST (CAR L))

)

)

L)

)

)

)

пример

(F23 ‘(A C X C A B Y X D A) X)   => (A C C A B Y D A)

(F23 ‘(A C X C A B Y X D A) A)   => (C X C B Y X D)

(F23 ‘(0 1 0 0 1 1 1 0 0) 1)   => (0 0 0 0 0)

  1.  Оставить в исходном линейном списке не более одного вхождения каждого элемента.

(DEFUN F24 (L)

(COND ((NOT (LISTP L)) "WRONG LIST ARGUMENT")

 (T  (MAPCON '(LAMBDA (L)

(IF (MEMBER (CAR L) (CDR L))

NIL

(LIST (CAR L))

)

)

     L)

)

)

)

пример

(F24 ‘(A C X C A B Y X D A))   => (A C X B Y D)

(F24 ‘(0 1 0 0 1 1 1 0 0))   => (0 1)

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

(DEFUN F25 (L1 L2)

(COND ((OR (NOT (LISTP L1)) (NOT (LISTP L2))) ERROR!_WRONG_LIST_ARGUMENT!)

((OR (NULL L1) (NULL L2)) ERROR!_LIST_IS_EMPTY!)

((NOT (= (LENGTH L1) (LENGTH L2))) ERROR!_DIFFERENT_LENGTHS!)

(T  (MAPCAN '(LAMBDA (L1 L2)

(IF (AND (ATOM L1) (ATOM L1) (Not (EQ L1 L2)))

(LIST (CONS L1 L2))

NIL

)

)

L1 L2)

)

)

)

пример

(F25 ‘(A B C D 2 F) ‘(A C X 3 6 F))  => ((B . C) (C . X) (D . 3) (2 . 6))

(F25 ‘(A B C D 2 F) ‘(A C X 3))   => ERROR!_DIFFERENT_LENGTHS!

Входной  файл  на внешнем носителе содержит исходные данные в виде множества допустимых в ЛИСП структур данных.  Рассортировать его  и записать на внешний носитель в виде четырех файлов, каждый из которых содержит либо  числовые  атомы,  либо  символьные атомы, либо точечные пары, либо списки.

(DEFUN SORT (FileName File1 File2 File3 File4)

(SETQ F   (OPEN-INPUT-FILE FileName))

(SETQ F1 (OPEN-OUTPUT-FILE File1))

(SETQ F2 (OPEN-OUTPUT-FILE File2))

(SETQ F3 (OPEN-OUTPUT-FILE File3))

(SETQ F4 (OPEN-OUTPUT-FILE File4))

(IF (NOT (EQ NIL F))

 (LOOP

  

  ((EQ NIL (SETQ X (READ F))) SORT_IS_FINISHED)

  (COND ((NUMBERP X) (WRITE X F1))

   ((LISTP X) (WRITE X F2))

   ;((EQ SYM (TYPE X)) (WRITE X F3))

   (T (WRITE X F4))

)

)

ERROR!_WRONG_FILE_NAME!

)

)


 

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

44385. ГОСУДАРСТВЕННО-ПРАВОВОЕ ОБЕСПЕЧЕНИЕ БОРЬБЫ С КОРУПЦИЕЙ 273 KB
  В основе дипломной работы лежит диалектический метод познания, предусматривающий изучение экономических процессов и явлений в развитии и во взаимосвязи с другими системами. Для решения поставленных задач использовались методы системного, программно-целевого подхода, экономико-математического моделирования, кластерного и регрессионного анализа, классификации, экспертных оценок.
44386. Розрахунок основних функціональних вузлів транспортного засобу 2.37 MB
  Сучасні автомобілі поділяють на транспортні (призначені для перевезення вантажів та пасажирів) і спеціальні (призначені для виконання спеціальних робіт). Залежно від призначення автомобілі поділяють на три основні групи: вантажні автомобілі, автобуси і легкові автомобілі.
44387. Адекватный перевод оригинального английского текста на русский язык с использованием переводческих трансформаций 236 KB
  Для проверки результатов взаимодействия источника и модальности применялся инвариантный дисперсионный анализ ANOVA с использованием трёх переменных. Не было выявлено результатов взаимодействия между источником и модальностью относительно воспринимаемой надёжности информации, её достоверности, отношений к новостному материалу, ни с точки зрения прав курильщика или качества жизни, ни с точки зрения поведенческих намерений
44388. Проектирование подстанции. Выбор линейных регулировочных трансформаторов 1.2 MB
  Белорусская энергетическая система - это сложный комплекс, включающий электростанции, электрические и тепловые сети, которые связаны общностью режима их работы на территории всей республики. В энергосистему входят 6 РУП электроэнергетики, имеющие 28 тепловых электростанций установленной мощностью 8 МВт
44389. Кинофильм как форма реализации и объект кинодискурса. Основные направления исследования кинодискурса 346 KB
  Основные направления исследования кинодискурса Возрастание интереса ученых к разным видам текстов погруженных в жизнь закономерно привело лингвистов к проблеме изучения кинофильмов. Применительно к кинофильму употребляются также наименования медиатекст креолизованный поликодовый текст кинотекст кинодискурс кинематографический дискурс. Одно из определений кинодискурса принадлежит...
44390. СОВЕРШЕНСТВОВАНИЕ КОНКУРЕНТОСПОСОБНОСТИ ГОСТИНИЧНЫХ УСЛУГ «АТРИУМ ПАЛАС ОТЕЛЯ» 944 KB
  Цель дипломного проекта: совершенствование конкурентоспособности гостиничных услуг «Атриум Палас Отеля» Основные задачи: провести теоретический обзор путей повышения конкурентоспособности предприятия; дать общую характеристику объекта исследования, провести анализ внешней и внутренней среды, выбрать стратегию предприятия, в соответствии с выбранной стратегией разработать мероприятия по повышению конкурентоспособности предоставляемых услуг и отеля, дать рекомендации по их реализации на предприятии