Я мюсли. Следовательно, я cуществафли.
Помогите, пожалуйста с программой на Прологе.
Нужно создать предикат, вычисляющий по натуральному числу N сумму нечетных чисел, не превосходящих N.
Нужно создать предикат, вычисляющий по натуральному числу N сумму нечетных чисел, не превосходящих N.
Задача на рекурсию, механизм подстановки значений в переменные (т.н. matching), и логические операторы.
SM2(N, R, N1, R1):- N=>2, N2=N1+2, R2=R1+N2.
Что мне дописать в последней строчке?
SM2(
Базис неверен, и вам достаточно двух переменных в предикате. Первая переменная - N, вторая - результат. Запрос например SM2(10, X) - должен выдать X = 25.
Ответьте на следующие вопросы:
1. Для какого значения N результат "сразу" известен и чему он равен? (это базис).
2. Как построить шаг рекурсии в решении? (Аккуратно с выделением вспомогательных переменных).
3. Как сделать проверку на нечётность с соответствующим ветвлением (то есть if else) при помощи операторов ',' - "и" ';' - "или"?
Думаю, что ответив на эти вопросы - вы сможете решить задачу.