
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.3] |
![]() |
|
Сообщ.
#1
,
|
|
|
Сообщ.
#2
,
|
|
|
В ТурбоПрологе нет циклов...
|
Сообщ.
#3
,
|
|
|
Цитата Swetlana @ В ТурбоПрологе нет циклов... ну тогда рекурсия или еще как там... можно же ето как то сделать? |
Сообщ.
#4
,
|
|
|
![]() ![]() predicates sum(integer,integer,integer,real,real) goal clearwindow, N=7, sum(1,0,N,0,S), write("S=",S). clauses sum(_,N,N,S,S):-!. sum(Znak,X,N,Y,S):- Znak1=-Znak, X1=X+1, Y1=Y+Znak1*X1*cos(X1+3), sum(Znak1,X1,N,Y1,S). |
Сообщ.
#5
,
|
|
|
Спасибо всем кто откликнулся.
Надо еще сделать две такие задачки: 1. Создайте предикат, осуществляющий перестановку двух элементов списка с заданными номерами. 2. Реализуйте предикат min_list без использования предиката min. ![]() ![]() min_list([X],X). /* единственный элемент одноэлементного списка является минимальным элементом списка */ min_list([H|T],M):– min_list(T,M_T), /* M_T — минимальный элемент хвоста */ min(H,M_T,M). /* M — минимум из M_T и первого элемента исходного списка */[/PROLOG] |
Сообщ.
#6
,
|
|
|
Цитата c68c15 @ 2. Реализуйте предикат min_list без использования предиката min. ![]() ![]() domains list=integer* predicates min(list,integer) goal clearwindow, min([7,9,4,-1,5],X), write(X). clauses min([X],X):-!. min([H|T],Y):- min(T,Y), Y<=H,!. min([H|T],H). Добавлено c68c15, я чёто не пойму. Февраль 2010г, заводите тему "адача на ТурбоПрологе" адача на Turbo Prolog Год прошол как сон пустой, заводите новую тему, с циклами в ТурбоПрологе, а задачи всё те же - подсчёт суммы, работа со списками. Раздел "Помощь студентам" ждёт вас ![]() |
Сообщ.
#7
,
|
|
|
Цитата Swetlana @ Добавлено c68c15, я чёто не пойму. Февраль 2010г, заводите тему "адача на ТурбоПрологе" адача на Turbo Prolog Год прошол как сон пустой, заводите новую тему, с циклами в ТурбоПрологе, а задачи всё те же - подсчёт суммы, работа со списками. Раздел "Помощь студентам" ждёт вас ![]() У меня в прошлом году бил спецкурс по прологу, а теперь другой преподаватель ведет свой курс "Специализирование языки программирования". Задачи и материал дает тот же, так как больше не знает:) И мы не знаем ![]() А первую задачку не знает не кто: 1. Создайте предикат, осуществляющий перестановку двух элементов списка с заданными номерами. Я так понял задачки нам дают вот от сюда http://www.intuit.ru/department/pl/plprolog/7/4.html |
Сообщ.
#8
,
|
|
|
![]() ![]() domains list=integer* predicates change(integer,integer,list,list) into(integer,integer,list,list) del(integer,list,list,integer) goal clearwindow, change(2,5,[7,9,4,-1,5],L), write(L). clauses change(1,N,[H|T],[Y|T2]):- N1=N-1, del(N1,T,T1,Y), into(H,N1,T1,T2). change(N,M,[H|T],[H|T1]):- N1=N-1, M1=M-1, change(N1,M1,T,T1). del(1,[H|T],T,H):-!. del(N,[H|T],[H|T1],Y):- N1=N-1, del(N1,T,T1,Y). into(X,1,T,[X|T]):-!. into(X,N,[H|T],[H|T1]):- N1=N-1, into(X,N1,T,T1). |
Сообщ.
#9
,
|
|
|
Спасибо Svetlana за помощь.
А что то ета программа у меня не запусается ![]() ![]() domains list=integer* predicates min(list,integer) goal clearwindow, min([7,9,4,-1,5],X), write(X). clauses min([X],X):-!. min([H|T],Y):- min(T,Y), Y<=H,!. min([H|T],H). в последней строке пишет какая то ошибка! |
Сообщ.
#10
,
|
|
|
В ТурбоПрологе всё запускается, печатает ответ.
Если не ТурбоПролог, то из цели надо убрать clearwindow. |