|
@@ -1,3 +1,33 @@
|
|
# prolog_test
|
|
# prolog_test
|
|
|
|
|
|
-тестове завдання на вакансію Prolog Dev
|
|
|
|
|
|
+тестове завдання на вакансію Prolog Dev
|
|
|
|
+
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+1. Описать два лимита на разовую транзакцию, используя Пролог.
|
|
|
|
+ Описание вида: limit_for_1_tr(Country, LimitSum, LimitCurrency).
|
|
|
|
+ a. Описать лимит на одну транзакцию в Украине. Сумма лимита - 30 000 грн
|
|
|
|
+ b. Описать лимит на одну транзакцию в России. Сумма лимита - 50 000 рублей
|
|
|
|
+
|
|
|
|
+2. Описать месячный лимит на транзакции по Грузии, используя Пролог,
|
|
|
|
+ если сумма - 10 000 теньге, количество - 15 транзакций.
|
|
|
|
+ Описание вида: limit_for_1_month(Country, LimitSum, LimitCount, LimitCurrency).
|
|
|
|
+
|
|
|
|
+3. Описать правило акции супермаркета, используя Пролог.
|
|
|
|
+ Правило: если покупатель купил товар с кодом 5111 акционной группы 565,
|
|
|
|
+ то ему начисляются двойные бонусы на счет за данный товар.
|
|
|
|
+ Сумма покупки - 50 грн.
|
|
|
|
+ Описание вида: bonus_check(GroupProduct, ProductID, CostProduct, Bonus).
|
|
|
|
+
|
|
|
|
+4. Реализовать на Прологе функции, используя арифметические операции, рекурсию и паттерн-матчинг:
|
|
|
|
+ a. train_reverse/2 - на вход получает список вида [1,2,4,3,5] и преобразует его в (->) [5,3,4,2,1]
|
|
|
|
+ b. train_last_one/2 - на вход получает список вида [1,2,4,3,5] -> 5
|
|
|
|
+ c. train_sort_up/2 - сортирует список по возрастанию [3,1,5,2,4] -> [1,2,3,4,5]
|
|
|
|
+ d. train_summ/2 - на вход получает список вида [1,2,4,3,5] -> 15 (сумма всех элементов)
|
|
|
|
+ e. train_odds/2 - на вход получает список вида [1,2,4,3,5] -> [2,4] (все четные)
|
|
|
|
+ f. train_zip/3 - на вход получает 2 списка вида [1,2,4,3,5] и [7,9,11,8,6] -> [[1,7],[2,9],[4,11],[3,8],[5,6]]
|
|
|
|
+ g. train_append_tail/3 - добавляет элемент в конец списка [1,2,3] и 4 -> [1,2,3,4] (сделать чисто рекурсивную реализацию)
|
|
|
|
+ h. train_concat/3 - получает на вход 2 списка [1,2,3] & [4,5,6] -> [1,2,3,4,5,6]
|
|
|
|
+```
|
|
|
|
+
|