Форум программистов, компьютерный форум, киберфорум
Наши страницы
Prolog
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/10: Рейтинг темы: голосов - 10, средняя оценка - 4.60
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
#1

Вычисление формулы на Prolog

21.03.2012, 13:43. Просмотров 1822. Ответов 12
Метки нет (Все метки)

Добрый день!
Обращаюсь ко всем и лично к Грымзику.
Помогите, пожалуйста, вычислить формулу на Prolog
∑(i+x+sinx) i задается от 1 до N. На выходе получить список значений функции.
Вроде какие-то мысли в голове витают, но пока твердых знаний нет,
нужно учиться на грамотных примерах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2012, 13:43
Ответы с готовыми решениями:

Вычисление глубины бинарного дерева на Arity Prolog
Пожалуйста помогите дописать буквально пару строчек в коде!!! вот код: ...

Вычисление суммы четных делителей натурального числа на Turbo Prolog
Добрый день. Есть задача: Составьте программу вычисления суммы четных делителей...

Напишите программу, реализующую вычисление значения функции Аккермана (Visual Prolog)
Напишите программу, реализующую вычисление значения функции Аккермана: ...

Как переделать программу написанную на Turbo-Prolog в SWI-Prolog?
Ребята подскажите пожалуйста как переделать эту программу написанную на...

Из Turbo Prolog в Visual Prolog - где будут отличия в коде?
ребята ,помогите. есть прога на турбо прологе,а нужно отредактировать под...

12
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
22.03.2012, 09:49 #2
Что бы Вам помогли, надо выложить свои попытки написать прогу. И учиться на примерах - это правильное дело, воспользуйтесь поиском по слову "ряд" или "сумма". Задачи про ряды часто встречаются, может и точно такой же уже был.
1
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
26.03.2012, 18:51  [ТС] #3
Уважаемый Грымзик!
Помогите пожалуйста, я хочу получить ряд натуральных чисел, что не так?
fact(1,R):-
!.
fact(N,R):-
N1 is N-1,
fact(N1,[N1|R]).
Заранее благодарна
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
26.03.2012, 18:59 #4
Да тут совсем не понятно. Под рядом список подразумевается. При чем тут факториал?
0
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
26.03.2012, 19:03  [ТС] #5
А если это будет не натуральные числа, а собрать в ряд значения формулы i/sin(x)?
Тогда как поступать?
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
26.03.2012, 19:13 #6
Я так и не поняла, сумма ряда нужна, или список значений на каждом шаге?
0
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
26.03.2012, 20:15  [ТС] #7
список значений функции, сумму ряда немножко проще как для меня.
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
26.03.2012, 21:04 #8
Просто странные формулы, Х не меняется, это как константа
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
domains
list=real*
 
predicates
p(real,integer,list).
p(real,integer,integer,list).
 
clauses
p(X,N,Ans):-Sin=sin(X),p(Sin,1,N,Ans).
 
p(_,I,N,[]):-I=N+1,!.
p(Sin,I,N,[H|Tail]):-H=I/Sin,I1=I+1,p(Sin,I1,N,Tail).
 
goal
p(3.0,5,L).
1
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
26.03.2012, 22:21  [ТС] #9
А если меняется X, есть X начальное, X конечное и dx - приращение, нужно составить список из значений функций. Помогите найти ошибку в программе, пожалуйста
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
znfunc(XK,XK,DX,N,S):-
    !.
znfunc(XN,XK,DX,N,S):-
    X is XN,
    X1 is X+DX,
    X1 =< XK,
    znfunc(X1,XK,DX,[Z|T]),
    znf(X,N,Z).
 
 
znf(X,N,S):-
    f(X,N,S1),
    S is S1+tan(X).
f(_,0,0.0):-
    !.
f(X,N,S):-
    N1 is N-1,
    f(X,N1,R),
    S is R+(X*X)/(N+X).
причем zfn - где вычисляется значение функции с тангенсом вычислется четко, я проверяла, а вот список значений не формируется. Помогите, я запуталась!
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
26.03.2012, 22:27 #10
Куча функций, то тангенсы, то синусы, то сумма, то dx. Вы можете точно задание сказать?
1
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
26.03.2012, 23:59  [ТС] #11
Это я тренируюсь, а точное задание вычислить значение функции
(∑x^2/(i+x))+tgx - сумма i=1 до N задано Х начальное, приращение, Х конечное(параметры задаются в запросе) и сформировать список значений функций.
У меня в программке формула работает, считает четко, а список значений функций не формируется.
Помогите, извините, что морочу голову, хочется все и сразу, а получается в результате ничего.

Добавлено через 1 минуту
Это я тренируюсь, а точное задание вычислить значение функции
(∑x^2/(i+x))+tgx - сумма i=1 до N задано Х начальное, приращение, Х конечное(параметры задаются в запросе) и сформировать список значений функций.
У меня в программке формула работает, считает четко, а список значений функций не формируется.
Помогите, извините, что морочу голову, хочется все и сразу, а получается в результате ничего.
0
Грымзик
2477 / 1454 / 34
Регистрация: 14.09.2009
Сообщений: 2,742
27.03.2012, 12:13 #12
Prolog
1
2
3
4
5
znfunc(XN,XK,_,_,[]):-XN>XK,!.
znfunc(XN,XK,DX,N,[Z|T]):-
        X1 is XN+DX,
        znfunc(X1,XK,DX,N,T),
        znf(XN,N,Z).
2
vikkov7
1 / 1 / 0
Регистрация: 27.02.2012
Сообщений: 61
27.03.2012, 15:41  [ТС] #13
Спасибо большое, Вы гений!
0
27.03.2012, 15:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2012, 15:41

Пожалуйста, помоите переделать программу с Turbo Prolog на Visual Prolog
DOMAINS l_i=integer* l_s=string* i=integer s=string c=char...

В Turbo-Prolog есть возможность описать Goal. Как это реализовано в SWI-Prolog
Здравствуйте. в Turbo-Prolog есть возможность описать Goal: Goal ...

Логическая задача на Turbo prolog или Gui prolog
Может у кого есть исходни на Prolog ЗЫ заранее спаисбо)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru