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!

)

)


 

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

83222. Организация оплаты труда руководителей и специалистов предприятия и пути ее совершенствования (на примере ОАО «Гомельский мотороремонтный завод») 146.9 KB
  Переход на рыночные отношения в сфере экономики потребовал от коллектива предприятия более детального изучения рынка его потребности в продукции и возможностей завода по организации выпуска нетрадиционных видов товаров и услуг. Продолжая развивать линейку новой продукции в апреле 2010 г.
83223. Обоснование амортизационной политики на предприятии (по материалам ООО «ТВК-Р») 218.93 KB
  В процессе работы были решены такие задачи как изучение теоретических аспектов амортизационной политики; предоставление организационной характеристики исследуемого предприятия и анализ показателей его финансово-хозяйственной деятельности; оценка состояния основных средств избранного предприятия и его учетной политики...
83225. Осoбеннoсти прoфессиoнaльнoгo сaмooпределения в юнoшескoм вoзрaсте 152.27 KB
  Прoблеме прoфессиoнaльнoгo сaмooпределения учaщихся пoсвященo мнoгo исследoвaний. Oднaкo, несмoтря нa oчевидный интерес ученых, прoфoриентaциoннaя рaбoтa в сoвременных услoвиях не в пoлнoй мере дoстигaет свoих глaвных целей - фoрмирoвaния у учaщихся прoфессиoнaльнoгo сaмooпределения, сooтветствующегo индивидуaльным...
83226. Разработка технологии производства листового и строительного стекла Марблита 96.09 KB
  Цель данной курсовой работы: разработать технологию производства листового и строительного стекла Марблита Задачи поставленные для курсовой работы: изучить применение ведущие свойства назначение листового и строительного стекла; выбрать сырьевые материалы и составить технологическую схему производства...
83227. Планирование аудиторской проверки в ООО «Чернухинские водопроводные сети» 86.86 KB
  Планирование аудита включает в себя составление плана ожидаемых работ и разработку аудиторской программы. Задачи курсовой работы: рассмотреть предварительное планирование; оценить систему бухгалтерского учета и внутреннего контроля в ходе аудита; рассчитать уровень существенности и аудиторский рис в ООО Чернухинские водопроводные сети...
83228. Государственная кадастровая оценка земель города Пензы 163.24 KB
  Массовая оценка недвижимости – это процесс определения стоимости целых групп объектов недвижимости в котором используются как обычные методы оценки так и специфические методы. Выгода массовой оценки недвижимости заключается в том что в результате массовой оценки недвижимости получаются корректные данные о стоимости объектов недвижимости...
83230. Разработка игры «Сбей самолет» 1.22 MB
  Компьютерные игры часто создаются на основе фильмов и книг; есть и обратные случаи. С 2011 года компьютерные игры официально признаны в США отдельным видом искусства. Компьютерные игры оказали столь существенное влияние на общество, что в информационных технологиях отмечена устойчивая тенденция к геймификации для неигрового...