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!

)

)


 

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

58433. Учись быть благодарным. Десять прокаженных 158 KB
  Показать им что в нашей жизни есть множество поводов благодарить Бога.Молитва Предложите детям совершить молитву и попросить у Бога благословения на этот урок.Мотивация Ребята когда мы говорим Спасибо А что хорошее сделал вам Бог За что же мы должны благодарить Бога За пищу за одежду за здоровье. Бога в небесах.
58434. ПРОБЛЕМЫ ПРАВОВОГО РЕГУЛИРОВАНИЯ ОТНОШЕНИЙ УЧАСТИЯ В ДОГОВОРЕ ДОЛЕВОГО СТРОИТЕЛЬСТВА ЖИЛЫХ ПОМЕЩЕНИЙ 353.5 KB
  Появление и дальнейшее развитие договора участия в долевом строительстве в российском законодательстве имеют огромное значение для решения жилищной проблемы, поскольку надежное правовое регулирование отношений долевого строительства - гарантия успешного развития данных отношений
58435. Чудесная любовь Иисуса. Пасха 156 KB
  Побудить детей своими поступками не огорчать Иисуса но быть всегда послушными исполнительными дружелюбными. И спросил правитель Иисуса: Ты Царь Иудейский Иисус отвечал: Ты говоришь. В чем же он заключался Бог – Отец послал Сына Иисуса на землю сказать людям чтобы они перестали делать злые дела поверили в Бога и исполняли Его заповеди.
58436. Религия 47.5 KB
  Религия как форма мировоззрения; Структура и функции религии; Виды религий; Веротерпимость и свобода совести. Другие определения религии: одна из форм общественного сознания; совокупность духовных представлений основывающихся на вере в сверхъестественные силы и существа богов...
58437. ООН и международные организации в области народонаселении 360 KB
  Международная конференция по народонаселению и развитию (МКНР), состоявшаяся в Каире, Египет, в 1994 году, позволила Фонду ООН в области народонаселения (ЮНФПА)
58438. Религия древних греков 67 KB
  Прочитайте или расскажите миф о Геракле стр. Сам же Зевс по греческой мифологии стал править небом и владеть Олимпом горой обиталищем богов гора Олимп находится в Северной Греции; расположенным под землей царством мертвых стал править Аид а Посейдону досталась власть над морями. Задание: прочитайте в учебнике миф о Деметре и ее дочери Персефоне. Какое природное явление отражено в этом мифе стр.
58439. Добрый Пастырь 225 KB
  Пояснить им что как пастух любит и заботится о своих овцах так Иисус любит нас даже знает каждого из нас по имени. Словарная работа: Пастырь – пастух овец Ход урока: 1. Мотивация Необходимые материалы: картинка с изображением пастуха и овечки иллюстрации снаряжения пастуха. Вниманию детей предлагаем картинку с изображением пастуха.
58440. Все починається з мами 45.5 KB
  Мета. Удосконалювати навички виразного читання, збагачувати активний словниковий запас; виховувати любов і повагу до матері красою художнього слова.
58441. Повторення теми «Одяг» 32 KB
  Мета. Повторити ЛО теми. Навчати діалогічного мовлення за темою. Практикувати у відповіді на запитання Whose is this? Увести та активізувати присвійні займенники в абсолютному відмінку