Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 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

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных