На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (7) 1 [2] 3 4 ...  6 7 все  ( Перейти к последнему сообщению )  
> адача на Turbo Prolog
    Цитата tatoo @
    30. Создайте предикат, генерирующий все перестановки элементов списка, указанного в качестве первого аргумента предиката.

    ExpandedWrap disabled
      domains
      list=integer*
      predicates
      p(list,list)
      into(integer,list,list)
      goal
      clearwindow,
      p([1,2,3],L),write(L),nl,fail.
       
      clauses
      p([],[]).
      p([X|T],P):-
         p(T, T1),
         into(X, T1, P).
       
      into(X, L, [X|L]).
      into(X, [H|T], [H|T1]):-
         into(X, T, T1).


    Добавлено
    Цитата tatoo @
    Создайте предикат, осуществляющий подсчет числа вхождений каждого элемента исходного списка. Ответом должен быть список пар, в которых первая компонента - элемент исходного списка, вторая - число его вхождений в первоначальный список.
    заранее благодарна ;)

    ExpandedWrap disabled
      domains
      list=integer*
      pair=p(integer,integer)
      plist=pair*
       
      predicates
      culc(list,plist)
      into(integer,plist,plist)
       
      goal
       clearwindow,
       culc([1,2,3,2,3,3],L), write(L),nl.
       
      clauses
      culc([],[]):-!.
      culc([X],[p(X,1)]):-!.
      culc([H|T],L):-
        culc(T,T1),
        into(H,T1,L).
        
      into(X,[],[p(X,1)]):-!.
      into(X,[p(Y,N)|T],[p(Y,N1)|T]):-
        X=Y,!,
        N1=N+1.
      into(X,[H|T],[H|T1]):-
        into(X,T,T1).
      Спасибо большое!!!!Вы мне очень помогли!благодарю!!!! :good:
        У меня огромная проблема с простенькой задачкой по Прологу,Буду очень благодарна за помощь...
        Создайте предикат, заменяющий в исходном списке первое вхождение заданного значения другим.
        Очень жду ответов...:)
          Каким другим значением? Любым что ли?
          Покажите на примере, что нужно. Исходный список и целевой список.
            Здравствуйте помогите пожалуйста решить задачу:Определить предикат, вычисляющий функцию (система): f(x)=2,если x<2
            X,если >=2
            Сообщение отредактировано: Italiano -
              Цитата Italiano @
              Здравствуйте помогите пожалуйста решить задачу:Определить предикат, вычисляющий функцию (система): f(x)=2,если x<2
              X,если >=2

              ExpandedWrap disabled
                predicates
                p(real,real)
                 
                goal
                 clearwindow,
                 write("X="),readreal(X),p(X,Y),write(Y),nl.
                 
                clauses
                p(X,2):-
                  X<2,!.
                p(X,X).


              Добавлено
              Цитата tatoo @
              не хочу показаться настойчивой,но если не трудно помогите закончить этот семестр=)))эти 3 задания последние,помогите кто чем может :wall:
              ФАЙЛЫ
              2. Напишите замену для стандартного предиката openmodify, который будет открывать файл на чтение и запись, если файл существует, и выводить соответствующее сообщение, если файл отсутствует.
              7. Создайте предикат, вычисляющий количество чисел, меньших среднего арифметического значения всех чисел в файле.
              9. Создайте предикат, дополняющий все строки, хранящиеся в файле, символом "*" до самой длинной строки.

              На форуме есть раздел "Помощь студентам".
                Цитата Swetlana @
                Каким другим значением? Любым что ли?
                Покажите на примере, что нужно. Исходный список и целевой список.

                Swetlana!

                Например:

                pred(2,5,[9,4,2,5,9,3,1,5,7,8,2,5,2,0,8],L);

                Должно получиться:

                L=[9,4,5,5,9,3,1,5,7,8,2,5,2,0,8]
                  помогите решить задачку,пожалуйста :-?
                  1. Написать замену для стандартного предиката openmodify, который будет открывать файл на чтение и запись, если файл существует, и выводить соответствующее сообщение, если файл отсутствует.
                  2. Создать предикат, вычисляющий количество чисел, меньших среднего арифметического значения всех чисел в файле.
                    Цитата Dii @
                    Цитата Swetlana @
                    Каким другим значением? Любым что ли?
                    Покажите на примере, что нужно. Исходный список и целевой список.

                    Swetlana!

                    Например:

                    pred(2,5,[9,4,2,5,9,3,1,5,7,8,2,5,2,0,8],L);

                    Должно получиться:

                    L=[9,4,5,5,9,3,1,5,7,8,2,5,2,0,8]


                    ExpandedWrap disabled
                      domains
                      list=integer*
                       
                      predicates
                      p(integer,integer,list,list)
                       
                      goal
                       clearwindow,
                       p(2,5,[1,3,2,5,6,2],L),write(L),nl.
                       
                      clauses
                      p(H,Y,[H|T],[Y|T]):-!.
                      p(X,Y,[H|T],[H|T1]):-
                        p(X,Y,T,T1).
                    Сообщение отредактировано: Swetlana -
                      помогите решить задачки на prolog swi,пожалуйста!
                      Тема:
                      Структуры, операторы, рекурсия и поиск с возвратом.
                      Задание 1:
                      Вычислить указанное значение, считая n натуральным числом.
                      Использовать операторное представление структур
                      При отладке программы использовать возможности трассировки.
                      1. сумму первых n нечетных чисел.
                      2. сумму первых n двузначных чисел.
                      3. среднее арифметическое первых n чисел.
                        здесь только турбопролог, swi - за деньги в "Помощь студентам"
                          Помоготе, пожалуйста, решить задачку!

                          Написать программу, которая выводит на печать число положительных и число отрицательных элементов списка

                          Заранее благодарен! :)
                            Я нули считала вместе с положительными. Или нули надо было пропускать?
                            ExpandedWrap disabled
                              domains
                              list=integer*
                               
                              predicates
                              print(integer,integer,list)
                               
                              clauses
                              print(0,0,[]):-!.
                              print(Neg,Poz,[H|T]):-
                                 H<0,!,  
                                 print(Neg1,Poz,T),
                                 Neg=Neg1+1.
                              print(Neg,Poz,[H|T]):-
                                 print(Neg,Poz1,T),  
                                 Poz=Poz1+1.
                                
                              goal
                              print(N,P,[1,-3,-5,7,-9]), write(N," ",P), nl.
                              Цитата Swetlana @
                              Я нули считала вместе с положительными. Или нули надо было пропускать?
                              ExpandedWrap disabled
                                domains
                                list=integer*
                                 
                                predicates
                                print(integer,integer,list)
                                 
                                clauses
                                print(0,0,[]):-!.
                                print(Neg,Poz,[H|T]):-
                                   H<0,!,  
                                   print(Neg1,Poz,T),
                                   Neg=Neg1+1.
                                print(Neg,Poz,[H|T]):-
                                   print(Neg,Poz1,T),  
                                   Poz=Poz1+1.
                                  
                                goal
                                print(N,P,[1,-3,-5,7,-9]), write(N," ",P), nl.

                              Большое спасибо! :)
                              А в Strawberry Prolog эта задача решается точно так же или как-то иначе?
                                Цитата
                                А в Strawberry Prolog эта задача решается точно так же или как-то иначе?

                                Рекурсия, она и в Африке рекурсия.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (7) 1 [2] 3 4 ...  6 7 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0492 ]   [ 15 queries used ]   [ Generated: 2.05.24, 20:36 GMT ]