Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2013, 11:10   #1
D1XoN
Новичок
Джуниор
 
Регистрация: 25.12.2011
Сообщений: 2
По умолчанию Задачи по прологу

Ребят, помогите кто нить плиз кто чем может, не знаю как сделать лабу(((


1.Определите (рекурсивно, не используя ^) предикат power(X, N, Power), который выполняется, если Power -- число X в степени N.

?- power(3, 2, X).
X = 9

2. Представим многочлены как списки их коэффициентов в порядке убывания степени. Например, многочлен 2*x^2+1 будет представлен как [2,0,1]. Определите предикат eval_poly(Polynom, X, Result), выполняющийся, если Result -- значение многочлена Polynom при аргументе X. Для возведения в степень используйте оператор ^ или определённый в прошлой задаче power/3. Возможно также использование схемы Горнера.

?- eval_poly([2,0,1,0], 2, Result).
Result = 9

3. В числе операторов, определённых в Prolog, есть /\ (и), \/ (или), \+ (не) и -> (следует). Определите предикат nnf(Formula), который выполняется, если Formula -- формула, в которой отрицания стоят только перед переменными (переменные в формуле представляем атомами).

?- nnf((x /\ \+ y) -> \+ x /\ z).
Yes
?- nnf((x /\ \+ y) -> \+ (x /\ z)).
No

4. Определите предикат nnf(Formula, NNF), который выполняется, если NNF -- формула, полученная из Formula эквивалентными преобразованиями, в которой отрицания стоят только перед переменными.

?- nnf(\+ ((x -> y) /\ z), NNF).
NNF = (x /\ \+ y) \/ \+ z
D1XoN вне форума Ответить с цитированием
Старый 31.05.2013, 13:36   #2
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

1. Как-то так:

Код:
power(X,0,1):-!;
power(X,N,Y):-N1=N-1,power(X,N1,Y1),Y=Y*Y1.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 31.05.2013, 16:03   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

на SWI Prolog помогу за денюжку (раз сам не пытался решить). Но не дешево это будет стоить (2 последних, особенно).
rrrFer вне форума Ответить с цитированием
Старый 31.05.2013, 22:57   #4
D1XoN
Новичок
Джуниор
 
Регистрация: 25.12.2011
Сообщений: 2
По умолчанию

я со вторым справился, но вот 3 и 4 ваще не представляю как сделать(((
D1XoN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решается судьба.. Надо решить две задачи.Мне задачи, вам практика и мое уважение) romichj Общие вопросы C/C++ 3 30.03.2012 00:33
ребят я не могу понять как решать эти задачи!может кто помочь в решении представленной задачи? Andrusha07 Помощь студентам 0 09.03.2012 23:08
Программа по Прологу oleg_super Помощь студентам 0 23.11.2011 23:01
Прога по прологу Dog Помощь студентам 0 15.11.2009 21:46
Две задачи по прологу. Родственники и кол-во слов. blade288 Помощь студентам 1 15.06.2009 23:21