На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Пролог
    Товарищи, которые изучали этот язык подскажите стоящие книги, еще лучше с сылками.
    Заранее благодарен.
      Сайт SWI-Prolog.

      Там вроде есть и документация, и еще чтото типа того...
      Но по сравнению с тем прологом, который учат в универе (в моем давали TurboProlog),
      этот пролог имеет гораздо больше возможностей.

      http://www.swi-prolog.org/
        я учился по этим статьям: turbo prolog +исходники
          Если Пролог нужен для искусственного интеллекта, то
          1. И. Братко
          Программирование на языке Пролог для искусственного интеллекта
          2. Д. Марселлус
          Программирование экспертных систем на Турбо Прологе
          Из этих двух книг я сделала некую выжимку (всё на Турбо Прологе) в виде учебного пособия "Системы искусственного интеллекта", если нужно, киньте в ПМ e-mail, вышлю электронный вариант.

          Для изучения Турбо Пролога можно взять такую книгу
          Ц. Ин, Д. Соломон.
          Использование Турбо-Пролога «Мир», 1993.
          Есть ещё мои собственные лекции по Турбо Прологу в электронном виде, очень старые, всё собираюсь их переделать... Их даже стыдно предлагать.
            А можно ссылки на книги? Очень интересует "Д. Марселлус
            Программирование экспертных систем на Турбо Прологе". :thanks:
              Программирование экспертных систем на Турбо-Прологе. / Д. Марселлус. М.: Финансы и статистика, 1994.

              У меня эта книга в бумажном виде. Часть этой книги есть в электронном виде (вордовский документ, можно вставлять прям в диплом :) ). Сюда прикрепить не могу, т.к. слишком большой размер архива.
              Могу выслать по электронной почте.
              Сообщение отредактировано: Swetlana -
                Отправила.
                  Дан список и число N. Если сумма всех элементов списка превосходит заданное число N, то от каждого элемента списка отнять N, а если не превосходит добавить N в конец списка, например, pr(4, [6, 4, 3, 1, 7, 1], [2, 0, –1, –3, 3, –3]). помогите решить.
                    ExpandedWrap disabled
                      domains
                      list = integer*
                       
                      predicates
                      sum(list,integer,integer)
                      conc(list,list,list)
                      pr(integer,list,list)
                      minus(integer,list,list)
                       
                       
                      clauses
                      conc([], L, L).
                      conc([H|T], L, [H|T1]):-
                      conc(T,L,T1).
                       
                      sum([],S,S):-!.
                      sum([H|T],S,Sum):-
                        S1=H+S,
                        sum(T,S1,Sum).
                       
                      minus(N,[],[]):-!.
                      minus(N,[H|T],[H1|T1]):-
                        H1=H-N,
                        minus(N,T,T1).
                       
                      pr(N,L,L1):-
                        sum(L,0,S),
                        S>N,!,
                        minus(N,L,L1).
                      pr(N,L,L1):-
                        conc(L,[N],L1).
                              
                        
                       
                      goal
                      pr(4,[6,4,3,1,7,1],S),write(S),nl.
                      Дан список и число N. Если сумма всех элементов списка превосходит заданное число N, то от каждого элемента списка отнять N, а если не превосходит добавить N в конец списка, например, pr(4, [6, 4, 3, 1, 7, 1], [2, 0, –1, –3, 3, –3]). помогите решить задачу!
                        eldarys, я эту задачу уже решила. Даже Ваш пример в цель забила. Чем Вас это решение не устроило?
                        ExpandedWrap disabled
                          domains
                          list = integer*
                           
                          predicates
                          sum(list,integer,integer)
                          conc(list,list,list)
                          pr(integer,list,list)
                          minus(integer,list,list)
                           
                           
                          clauses
                          conc([], L, L).
                          conc([H|T], L, [H|T1]):-
                          conc(T,L,T1).
                           
                          sum([],S,S):-!.
                          sum([H|T],S,Sum):-
                            S1=H+S,
                            sum(T,S1,Sum).
                           
                          minus(N,[],[]):-!.
                          minus(N,[H|T],[H1|T1]):-
                            H1=H-N,
                            minus(N,T,T1).
                           
                          pr(N,L,L1):-
                            sum(L,0,S),
                            S>N,!,
                            minus(N,L,L1).
                          pr(N,L,L1):-
                            conc(L,[N],L1).
                                  
                            
                           
                          goal
                          pr(4,[6,4,3,1,7,1],S),write(S),nl.
                          Маша, Вова, Зина и Петя участвовали в спектакле про экзотических животных. Двое ребят играли роли зайцев, двое — роли медведей. Кто из ребят изображал медведей, если известно, что:
                          1) Маша и Вова играли разные роли;
                          2) Вова и Зина изображали разных зверей;
                          3) Зина не играла роль медведя?...
                          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                          0 пользователей:


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