Дисципліна "ДЕКЛАРАТИВНЕ ПРОГРАМУВАННЯ"
УВАГА! МОДУЛЬНА КОНТРОЛЬНА РОБОТА!!! 21 КВІТНЯ 2017
Умови контрольної дивитися внизу сторінки.
Звіт та модулі надіслати на електронну пошту вкладача до 10-00 27.04.2017.
Напрямок "Комп'ютерні науки" (весна 2017)
Лекції
Цикл лекцій "Функціональне програмування. Lisp" Лекція №1 pdf Лекція №3 pdf (new!) pdf (old) Лекція №4 pdf Лекція №5 pdf Опис мови Common Lisp системи LispWorks Лекції "Функціональне програмування. F#" Лекція №6 pdf Лекція №7 pdf Лекції "Функціональне програмування. Clojure" lkЛекція №8 pdf(old) Лекція №9 pdf(old) Лекція №9-10 pdf (new!) Для скептиків типу "навіщо нам Clojure" Рекомендую зайти на сторінку attendify |
Цикл лекцій "Логічне програмування. Prolog" Лекція №10-11 pdf Цикл лекцій "Ймовірнісне програмування. Мови Church та Anglican. Лекція №14 Лекція №15 Сайт ЙМОВІРНІСНЕ ПРОГРАМУВАННЯ Цикл лекцій "Продукційне програмування. CLIPS" Лекція №15 pdf1, pdf2, pdf3, pdf4 Лекція №16 pdf |
Лабораторні роботи
Он-лайн програмування на Clojure
Цикл лабораторних робіт "Функціональне програмування. Lisp" (4 лаб.) Лабораторна робота №1 pdf Лабораторна робота №2 pdf Лабораторна робота №3 pdf Лабораторна робота №4 pdf Лабораторні роботи "Функціональне програмування. F#" (2 лаб.) Лабораторна робота №5 pdf Лабораторна робота №6 pdf Лабораторні роботи "Функціональне програмування. Clojure" (2 лаб.) Лабораторна робота №7 pdf Лабораторна робота №8-9 pdf Приклади на Clojure pdf |
Цикл лабораторних робіт "Логічне програмування. Prolog" (4 лаб.) Лабораторні роботи №10-13 pdf SWI-Prolog 5.6. Reference Manual pdf GNU PROLOG pdf
Цикл лабораторних робіт "Продукційне програмування. CLIPS" (2 лаб.) Лабораторна робота №14-15
|
УВАГА! МОДУЛЬНА КОНТРОЛЬНА РОБОТА.
A, B, C та D – множини.
Завдання написати функцію, яка реалізує наступну послідовність теоретико-множинних дій (№ варіанту):
1 |
(A ∩ B) – (C ∩ D) |
2 |
(A ∩ (B – C)) ∩ D |
3 |
((A ∩ B) – C) ∩ D |
4 |
A ∩ (B – (C ∩ D)) |
5 |
A ∩ ((B – C) ∩ D) |
6 |
(A υ B) – (C υ D) |
7 |
(A υ (B – C)) υ D |
8 |
((A υ B) – C) υ D |
9 |
A υ (B – (C υ D)) |
10 |
A υ ((B – C) υ D) |
11 |
(A ∩ B) υ (C ∩ D) |
12 |
(A ∩ (B υ C)) ∩ D |
13 |
((A ∩ B) υ C) ∩ D |
14 |
A ∩ (B υ (C ∩ D)) |
15 |
A ∩ ((B υ C) ∩ D) |
16 |
(A - B) υ (C - D) |
17 |
(A - (B υ C)) - D |
18 |
((A - B) υ C) - D |
19 |
A - (B υ (C - D)) |
20 |
A - ((B υ C) - D) |
21 |
(A - B) ∩ (C - D) |
22 |
(A - (B ∩ C)) - D |
23 |
((A - B) ∩ C) - D |
24 |
A - (B ∩ (C - D)) |
25 |
A - ((B ∩ C) - D) |
Завдання повинно виконуватися у вигляді однієї функції з використанням рекурсії.
Забороняється використовувати функції member, union, intersection…
Реалізація повинна бути виконана на мовах декларативного програмування Lisp, F#, Clojure (на підвищену оцінку), Prolog.
В звіті з МКР повинна бути відображена діаграма Венна індивідуального завдання, опис логіки програми для кожної мови програмування (текст програми з коментарями) та скріншоти виконання функції на одному й тому же прикладі для всіх чотирьох мов.
Звіт з МКР та файли з програмами надіслати на e-mail викладача до 10-00 27 квітня 2017 року.
Розрахунково-графічна робота (РГР)
Методичні рекомендації щодо виконання РГР pdf