Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2- 4_Функциональное программирование

.rtf
Скачиваний:
31
Добавлен:
23.06.2014
Размер:
37.55 Кб
Скачать

вариант: v = 59*8/div 100 = 4;

Контрольное задание 2.

Вариант 4.

1. Напишите функцию, которая определяет является ли данное натуральное число простым.

Воспользуйтесь более общей задачей: (ispr n m) - "Число n не делится ни на одно число

большее или равное m и меньшее n". Имеем (ispr n m) -истинно, во-первых, если n = m, и

во вторых, если истинно (ispr n m+1) и n не делится на m.

(defun ispr(n m)

(if (= n m)

T

(if (= (rem n m) 0)

NIL

(ispr n (+ m 1))

)

)

)

(defun simple(x)

(cond

((< x 0) NIL)

((= x 1) T)

((> x 0) (ispr x 2))

)

)

2. Напишите функцию, которая сортирует список чисел, используя алгоритм простой вставки.

(defun getmax(x)

(if (null (cdr x))

(car x)

(max (car x) (getmax (cdr x)))

)

)

(defun sortv(x)

(cond

((null x) NIL)

(T

(setq k (getmax x))

(cons k (sortv (delete k x)))

)

)

)

3. Напишите функцию (all p x), которая проверяет "Для всех ли элементов списка х выполняется предикат р?" (р - функция или функциональное имя).

(defun all(p x)

(cond

((null x) T)

((funcall p (car x)) (all p (cdr x)) )

(T NIL)

)

)

Рецензия

Функциональное программирование

Контрольная работа №2

Вариант 4

Специальность 220400

Проверил Зюзьков Валентин Михайлович

16.03.03

Оценка: работа зачтена.

Комментарий

Все правильно.