Главная
»
Информационные системы
»
Представление знаний в ИС
»
Опишите предикат, определяющий возрастающую подпоследовательность
Опишите предикат, определяющий возрастающую подпоследовательность
Чтобы выдал 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).
Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.