Advertisement
PonaFly

№9 20-22

Sep 28th, 2016
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.20 KB | None | 0 0
  1. % не работает
  2. %ПЕРВЫЙ ВАРИАНТ
  3. searchmax(Lst1,New,K,Res,Len):-
  4. (Lst1=[],!);
  5. (Lst1=[H1,H2|T],
  6. integer(H1),integer(H2),
  7. ([H2] = [],K1 is K+1,
  8. ((K1 > Len,!,searchmax([],[],0,[H1|New],K1));
  9.  (K1 =< Len,!,searchmax([],[],0,Res,Len))
  10. ));
  11. %ругается в след. строчке на >
  12. (H2 > H1,K1 is K+1,!,searchmax([H2|T],[H1|New],K1,Res,Len));
  13.  
  14. ((K>Len,!,searchmax([H2|T],[],0,New,K));
  15.  (!,searchmax([H2|T],[],0,Res,Len))
  16. )).
  17.  
  18. tooinO(Lst1,Lst2):-
  19. Len=0,Res=[],
  20. searchmax(Lst1,[],0,Res,Len),check(Lst2,Res).
  21.  
  22. check(Lst1,Lst2):-
  23. (Lst1=[],Lst2=[],!);
  24. (Lst1=[H1|T1],Lst2=[H2|T2],H1 is H2,check(T1,T2)).
  25.  
  26. %ВТОРОЙ ВАРИАНТ
  27.  
  28. searchmax(Lst1,E,New,K,Res,Len):-
  29. (Lst1=[],!,K1 is K+1,
  30. ((K1 > Len,!,searchmax([],[],0,New,K1));
  31.  (K1 =< Len,!,searchmax([],[],0,Res,Len))
  32. ));
  33. (Lst1=[H|T],
  34. %ругается в след. строчке на >
  35. (H1 > E,K1 is K+1,!,searchmax(T,H1,[H1|New],K1,Res,Len));
  36.  
  37. ((K>Len,!,searchmax(T,H1,[],0,New,K));
  38.  (!,searchmax(T,E,[],0,Res,Len))
  39. )).
  40.  
  41. tooinO(Lst1,Lst2):-
  42. Len=0,Res=[],
  43. Lst1=[H|T],
  44. searchmax(T,H,[],0,Res,Len),check(Lst2,Res).
  45.  
  46. check(Lst1,Lst2):-
  47. (Lst1=[],Lst2=[],!);
  48. (Lst1=[H1|T1],Lst2=[H2|T2],H1 is H2,check(T1,T2)).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement