ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Визначити функції MIN, MAX, INCR, DECR для списків. Функція INCR (DECR) повертає істину, якщо значення аргументів знаходяться в зростаючому (спадному) порядку.$ (DEFUN LMIN (lst) ((ATOM (CDR lst)) (CAR lst)) ((< (CAR lst) (CADR lst)) (LMIN (CONS (CAR lst) (CDDR lst)))) (LMIN (CDR lst))) LMIN
$ (DEFUN LMAX (lst) ((ATOM (CDR lst)) (CAR lst)) ((> (CAR lst) (CADR lst)) (LMAX (CONS (CAR lst) (CDDR lst)))) (LMAX (CDR lst))) LMAX
$ (DEFUN INCR (lst) ((ATOM (CDR lst)) T) ((< (CAR lst) (CADR lst)) (INCR (CDR lst)))) INCR
$ (DEFUN DECR (lst) ((ATOM (CDR lst)) T) ((> (CAR lst) (CADR lst)) (DECR (CDR lst)))) DECR
2. Написати функцію, яка за списком з підсписками знаходить: A) суму елементів $ (DEFUN FSUM (lst) ((NULL lst) 0) ((ATOM (CAR lst)) (+ (CAR lst) (FSUM (CDR lst)))) (+ (FSUM (CAR lst)) (FSUM (CDR lst)))) FSUM
Б) кількість елементів $ (DEFUN FLEN (lst) ((NULL lst) 0) ((ATOM (CAR lst)) (+ 1 (FLEN (CDR lst)))) (+ (FLEN (CAR lst)) (FLEN (CDR lst)))) FLEN
В) кількість підсписків $ (DEFUN FLIST (lst) ((NULL lst) 0) ((ATOM (CAR lst)) (FLIST (CDR lst))) (+ 1 (FLIST (CAR lst)) (FLIST (CDR lst)))) FLIST
Г) лінеризує список $ (DEFUN LINER (lst) ((NULL lst) NIL) ((ATOM (CAR lst)) (CONS (CAR lst) (LINER (CDR lst)))) (APPEND (LINER (CAR lst)) (LINER (CDR lst)))) LINER
3. Написати функцію: a) (DIVIS x y) — повертає частку та остачу від ділення x на y. Повернути результат у вигляді конса. Не використовувати функцій ділення та остачі. $ (DEFUN DIVIS (x y) ((ZEROP y) NIL) (SETQ ch 0) (LOOP ((< x y) (CONS ch x)) (SETQ x (- x y) ch (+ 1 ch)))) DIVIS
Б) (POW x y) — x в степені y. Запропонувати алгоритми з часовою оцінкою O(y) та O(log y). $ (DEFUN POW (x y) ((ZEROP y) 1) (* (POW x (- y 1)) x)) $ (DEFUN POWLOGY (x y) (SETQ k y b 1 c x) (LOOP ((= k 0) b) (if (= 0 (mod k 2)) (SETQ k (/ k 2) c (* c c)))) (SETQ k (SUB1 k) b (* b c)) )) POW
Не нашли, что искали? Воспользуйтесь поиском:
|