Необходимо выполнить две лабораторные работы по логическому программированию. В самой методичке речь идёт о выполнении "контрольных" работ на языке Prolog, но на самом деле это является лабораторными работами к которым необходимо ещё сделать отчет.
Лабораторная работа № 1
Вариант 13
1. Напишите новую версию предиката length(+L, -N), в котором при подсчете количества элементов списка не учитывается пустой список. К примеру, для списка [a,b,c,d,e] новая версия процедуры должна сообщить, что длина списка равна пяти, а для списка [a,[],c,d,[]] эта процедура должна давать длину, равную трем.
2. Пусть имеется список структур "client": [client(a,29,3),client(b,29,6),client(c,40,2)]. Первым аргументом каждой структуры служит имя клиента, вторым - суточный тариф, а третьим - количество дней, на которое взята автомашина. Напишите правило, позволяющее вычислить итоговую сумму оплаты, объединяющую выплаты всех клиентов, данные о которых содержатся в списке.
Лабораторная работа № 2
Вариант 7
1. Напишите вариант программы plus(?X, ?Y, ?Z), пригодный для сложения, вычитания и разбиения чисел на слагаемые. (Указание. Используйте для порождения чисел встроенный предикат between(+Low, +High, ?Value), который порождает все целые числа от нижней границы Low до верхней границы High.)
2. Напишите программу вычисления целочисленного квадратного корня из натурального числа N, определяемого как число I, такое, что I*I С N, но (I+1)*(I+1) > N . Используйте определение предиката between/3 для генерирования последовательности натуральных чисел с помощью механизма возвратов.
В методичке удалил все лишние варианты, оставив только необходимые для выполнения. Также у меня имеется выполненные лабораторные работы по другим вариантам, могу их предоставить Исполнителю в качестве ознакомления.
Гарантия на работу | 1 год |
Средний балл | 4.96 |
Стоимость | Назначаете сами |
Эксперт | Выбираете сами |
Уникальность работы | от 70% |