01:09

Пролог

Я мюсли. Следовательно, я cуществафли.
Помогите, пожалуйста с программой на Прологе.
Нужно создать предикат, вычисляющий по натуральному числу N сумму нечетных чисел, не превосходящих N.

@темы: Вопрос

Комментарии
17.10.2012 в 08:50

Don't stop the music.
Решите задачу рекурсивно, после чего проверьте текущее N на нечётность.

Задача на рекурсию, механизм подстановки значений в переменные (т.н. matching), и логические операторы.
17.10.2012 в 11:22

Я мюсли. Следовательно, я cуществафли.
Базис SM2(N, R, N, R):- ! .
SM2(N, R, N1, R1):- N=>2, N2=N1+2, R2=R1+N2.
Что мне дописать в последней строчке?
SM2(
17.10.2012 в 14:09

Don't stop the music.
твой Драко,
Базис неверен, и вам достаточно двух переменных в предикате. Первая переменная - N, вторая - результат. Запрос например SM2(10, X) - должен выдать X = 25.

Ответьте на следующие вопросы:
1. Для какого значения N результат "сразу" известен и чему он равен? (это базис).
2. Как построить шаг рекурсии в решении? (Аккуратно с выделением вспомогательных переменных).
3. Как сделать проверку на нечётность с соответствующим ветвлением (то есть if else) при помощи операторов ',' - "и" ';' - "или"?

Думаю, что ответив на эти вопросы - вы сможете решить задачу.
17.10.2012 в 15:44

Я мюсли. Следовательно, я cуществафли.
Спасибо большое, что объяснили)