Главная » Информационные системы » Представление знаний в ИС » Опишите предикат, определяющий возрастающую подпоследовательность

Опишите предикат, определяющий возрастающую подпоследовательность

Чтобы выдал no список задавайте например как 1,3,2. , а чтобы выдал yes [1,2,3].
% Bilet1
% Patched 14.01.13
% To start type: jstart.

prin(X,[X|L]).
prin(X,[Y|L]):-prin(X,L).

kol(0,[]).
kol(K,[Y|L]):-kol(K1,L),K is K1+1.

longer(L1,L2):-kol(X1,L2),kol(X2,L1),X1>X2.
maxlist(X,L):-prin(X,L),not (prin(Y,L),longer(X,Y)).

podposl([],[]).
podposl([X|L1],[X|L2]):-podposl(L1,L2).
podposl(L1,[Y|L2]):-podposl(L1,L2).

vozrast([]).
vozrast([X]).
vozrast([X,Y|L]):- X<Y, vozrast([Y|L]).

vozrastpodposl(L1,L2):-podposl(L1,L2), vozrast(L1).

vpnd(X,L2):-setof(X,vozrastpodposl(X,L2),L),maxlist(X,L).

jstart:- write(' Vvedite spisok L: '),nl,read(LJAM),nl,
write(' Vivod spiska L= '),
write(LJAM),nl,
vpnd(X,LJAM).



Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

Поделиться
Дисциплины