Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %55
- DOMAINS
- i=integer
- list=i*
- PREDICATES
- nondeterm enter(list)
- nondeterm getlength(list,i)
- nondeterm run
- nondeterm do(char)
- nondeterm check(i,i,list,i)
- nondeterm delete(list,i,i,list)
- CLAUSES
- enter([H|T]):-
- write("Enter the element of the list or type 'END': "),
- readint(H),
- enter(T).
- enter([]):-!.
- getlength([],N):-N=0.
- getlength([_|T],N):-
- getlength(T,NewN),N=NewN+1.
- check(N,K,L,Pos):-
- N>=K,K>0,Pos>0,Pos<=N,K-1<=N-Pos,delete(L,Pos,K,L1), write(L1),nl;
- write("Bad value"),nl.
- delete([H|T1],Pos,K,[H|T2]):-
- Pos=1,
- K=0,
- delete(T1,Pos,K,T2);
- Pos>1,
- K>0,
- NewPos=Pos-1,
- delete(T1,NewPos,K,T2).
- delete([_|T1],Pos,K,T2):-
- Pos=1,
- K>0,
- NewK=K-1,
- delete(T1,Pos,NewK,T2).
- delete([],_,_,[]):-!.
- run:-
- write("*******ENTER*******"), nl,
- write("- 1 to START"),nl,
- write("- 0 to EXIT"),nl,
- write("***********************"),nl,
- write(">>"), readchar(X),
- write(X), nl, do(X), run.
- do('1'):-
- enter(L),write("Your list is ",L),getlength(L,N),nl,
- write("N1 = "),readint(N1),
- write("N2 = "), readint(N2),
- K=N2-N1+1,
- check(N,K,L,N1).
- do('0'):-
- write("That's all"),exit.
- do(_):-
- write("Bad value"), nl.
- goal
- run.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement