Вам дана база данных на языке Prolog, содержащая данные о книгах в библиотеке.
Фрагмент базы выглядит так:
book(1, "Niklaus Virth", "Algorithms and data structures", 2015, 183).
book(2, "Morris Cohen, Ernest Nagel", "An Introduction to Logic and Scientific Method", 2017, 432).
book(3, "Max Bramer", "Logic Programming with Prolog", 2013, 6452).
Каждая запись о книге содержит порядковый номер, автора, название, год издания и цену (где цена - это целое число).
Для подключения базы к вашей программе напишите в начале программы строчку:
:- use_module(library(books)).
Выведите суммарную стоимость книг, год издания которых меньше или равен заданному году Y.
Подсказка: для решения можно использовать предикат aggregate_all.
Например, данный код найдёт и запишет в переменную Sum сумму первых элементов foo, которые меньше 5:
foo(2, a).
foo(4, b).
foo(5, c).
aggregate_all(sum(A), (foo(A, B), A<5), Sum).
Исходные данные
Одно целое число - интересующий нас год Y.
Результат
Выведите одно целое число - суммарную стоимость книг, изданных в году Y и ранее.
Пример
Исходные данные | Результат |
2015
| 6635
|
Пример решения задачи A+B на Prolog