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!

)

)


 

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

3089. Раскрытие особенностей малого и среднего бизнеса в регионе Казахстана 100.27 KB
  В приоритетных направлениях развития общества, поставленных Президентом страны Н. Назарбаевым в своих Посланиях народу Казахстана, центральное место занимает экономический рост, базирующийся на открытой рыночной экономике и реальной конкуре...
3090. Влияние продуктов сгорания углеводородов на экосферу 38.8 KB
  Введение Экосфера - биотоп биосферы; совокупность свойств Земли как планеты, создающих условия для развития жизни. Пространственно экосферы включает в себя тропосферу, всю гидросферу и верхнюю часть литосферы. Интенсивное развитие энергетики, промыш...
3091. Классификация и функции социальной роли человека 36.41 KB
  Актуальность исследования. В наше время прогресса человечество становится все более  высокоразвитым сообществом с развитой социальной структурой. Но перед обществом, как и раньше, встают различные трудные и важные проблемы. Вста...
3092. Транспортный налог 30.57 KB
  Общие положения Транспортный налог был введен в действие 1 января 2003 года, он взимается с владельцев зарегистрированных транспортных средств в местный бюджет, так как относится к региональным налогам. Величина налога, порядок и сроки его уплаты...
3093. Вступление Республики Казахстан в ВТО. Проблемы и перспективы 97.09 KB
  Республика Казахстан, как одна из самых быстроразвивающихся стран СНГ, а также страна, владеющая большими запасами стратегических ресурсов, не может оставаться в стороне от расширяющейся мировой интеграции. В последние несколько лет руковод...
3094. Выбор валютно-финансовых условий внешнеторговых контрактов 42.27 KB
  Развитие стран мирового сообщества характеризуется постоянным расширением их взаимных хозяйственных связей. Этот процесс привел к созданию международной экономики - многогранного и сложного явления, выражающего высший этап развития обществе...
3095. Тепловые пункты 29.84 KB
  Тепловые пункты подразделяются на: - индивидуальные тепловые пункты (ИТП) - для присоединения систем отопления, вентиляции, горячего водоснабжения и технологических теплоиспользующих установок одного здания или его части, центральные тепловые пункт...
3096. Оценка чистой текущей стоимости 61.09 KB
  Задача №1 «Оценка чистой текущей стоимости» Предприятие рассматривает инвестиционный проект - приобретение новой технологической линии. Стоимость линии 14 тыс. усл. ден. ед. Срок эксплуатации 5 лет. Износ на оборудование начисляется исходя из норм 2...
3097. Химия радиоматериалов 98.06 KB
  Химия радиоматериалов. Определить падение напряжения в линии электропередач длиной L при температуре То1, То2 , То3, если провод имеет сечение S и по нему течет ток I. Дано Материал – Cu То1=-30C То2=0 То3=+30C L=500км S=30мм2 I=250А Найти...