[Закрыть]
 
popoff.donetsk.ua
Когда человек не знает, к какой пристани он держит путь, для него ни один ветер не будет попутным.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Функциональное и логическое программирование - снова про ошибку 707

снова про ошибку 707

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
maria
Машка
Июн, 2010
Сообщений: 2
maria url://forum.message:3071
снова про ошибку 707

Понимаю, конечно, что вопрос глупый, но всё же:

есть задача: tg(1)+tg(1)tg(2)+...+tg(1)tg(2)...tg(n).
попробовала написать её следующим образом:

1 predicates
2    sum(integer,real,real)
3    sum(integer,integer,real,real,real,real)

4 clauses
5    sum(N,A,Sum):-
6      sum(0,N,A,_,_,Sum).

7    sum(C,N,A,X,S,Sum):-
8       C<N, !, C1=C+1, X1=X*(A+C1), S1=S+tan(X1),
9       sum(C1,N,A,X1,S1,Sum).

10      sum(_,_,_,_,Sum,Sum).

11 goal
12      write("N="), readint(N),
13      sum(N,A,Sum), write("summa=",S1).

Почему-то останавливается в 8 строке на X выдает ошибку 707.
Ранее в 6 строке была запись sum(0,N,A,A,A,Sum), ругался, писал 420 ошибку, от неё вроде избавилась... что с этой делать непонятно.

Это сообщение было отредактировано popoff 08.06.10 18:16.
popoff
Yuri
Июл, 2004
Сообщений: 932
popoff url://forum.message:3077

maria,
Для понятности указывайте, пожалуйста не код ошибки, а текст сообщения об ошибке.

В строке 8 у Вас ошибка «переменная не конкретизирована». Пролог не может посчитать, сколько будет X*2, если X не конкретизирована.

Что могло быть в строке 6 - не могу сказать, требуется текст сообщения об ошибке.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
maria
Машка
Июн, 2010
Сообщений: 2
maria url://forum.message:3079

вроде разобралась, действительно необходимо было указать для переменных начальные значения.
вот, что в итоге получилось...

predicates
sum(integer,real,real)
sum(integer,integer,real,real,real,real)

clauses
sum(N,A,Sum):-
sum(0,N,A,1,0,Sum).

sum(C,N,A,X,S,Sum):-
C<N, !,
C1=C+1,
X1=X*tan(A+C1),
S1=S+X1,
sum(C1,N,A,X1,S1,Sum).

sum(_,_,_,_,Sum,Sum).


goal
write("N="),
readint(N),
sum(N,0,Sum), write("summa=", Sum).
Это сообщение было отредактировано popoff 09.06.10 14:24.

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Программное обеспечение любой сложности
koins.com.ua