На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Найти сумму элементов серии в Турбо Пролог
    Доброго времени суток. Помогите решить такую задачу на Турбо Прологе с помощью циклов: Найти сумму элементов серии
    user posted image
    заранее спасибо!
      В ТурбоПрологе нет циклов...
        Цитата Swetlana @
        В ТурбоПрологе нет циклов...

        ну тогда рекурсия или еще как там...
        можно же ето как то сделать?
          ExpandedWrap disabled
            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).
            Спасибо всем кто откликнулся.
            Надо еще сделать две такие задачки:
            1. Создайте предикат, осуществляющий перестановку двух элементов списка с заданными номерами.

            2. Реализуйте предикат min_list без использования предиката min.

            ExpandedWrap disabled
              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]
            Сообщение отредактировано: c68c15 -
              Цитата c68c15 @
              2. Реализуйте предикат min_list без использования предиката min.

              ExpandedWrap disabled
                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

              Год прошол как сон пустой, заводите новую тему, с циклами в ТурбоПрологе,
              а задачи всё те же - подсчёт суммы, работа со списками.
              Раздел "Помощь студентам" ждёт вас :yes:
                Цитата Swetlana @
                Добавлено
                c68c15, я чёто не пойму.
                Февраль 2010г, заводите тему "адача на ТурбоПрологе"
                адача на Turbo Prolog

                Год прошол как сон пустой, заводите новую тему, с циклами в ТурбоПрологе,
                а задачи всё те же - подсчёт суммы, работа со списками.
                Раздел "Помощь студентам" ждёт вас :yes:

                У меня в прошлом году бил спецкурс по прологу, а теперь другой преподаватель ведет свой курс "Специализирование языки программирования". Задачи и материал дает тот же, так как больше не знает:) И мы не знаем :(. А учится осталось всего две недели и сессия. Разбираться с прологом не хочется и уже поздновато, а здать задачки надо. Там что спасибо всем кто помогает и особенно Swetlan-е:)

                А первую задачку не знает не кто:
                1. Создайте предикат, осуществляющий перестановку двух элементов списка с заданными номерами.

                Я так понял задачки нам дают вот от сюда http://www.intuit.ru/department/pl/plprolog/7/4.html
                  ExpandedWrap disabled
                    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).
                    Спасибо Svetlana за помощь.
                    А что то ета программа у меня не запусается

                    ExpandedWrap disabled
                      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).


                    в последней строке пишет какая то ошибка!
                      В ТурбоПрологе всё запускается, печатает ответ.
                      Если не ТурбоПролог, то из цели надо убрать clearwindow.
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,4789 ]   [ 14 queries used ]   [ Generated: 18.07.25, 00:19 GMT ]