Заменить N последних элементов списка на заданную константу - Prolog
Формулировка задачи:
Заменить N последних элементов списка на заданную константу.
Решение задачи: «Заменить N последних элементов списка на заданную константу»
textual
Листинг программы
- domains
- list=integer*
- predicates
- nondeterm append(list,integer,list)
- nondeterm run(list)
- nondeterm insert (integer,list,list)
- nondeterm create_list (list,list)
- nondeterm do (char,list,list)
- nondeterm length(list,integer)
- nondeterm change(list,integer,integer,list)
- nondeterm task(list,integer,integer,list)
- clauses
- run(L):- write("\n 1. Create list \n 2. Change elements \n 3. Exit\n"),
- readchar(X),
- write("Entered: ", X,"\n"),
- do(X,L,NewL),
- run(NewL).
- do ('1',L,NewL):-create_list(L,NewL),
- write("List: ", NewL).
- do ('2',L,L):-write("Enter number: "),
- readint(N),
- write("Enter const: "),
- readint(C),
- task(L,C,N,NewL),
- write("List: ", NewL).
- do('3',L,L):-write("Good Buy!"),exit.
- do (X,L,L):-X<>'1',X<>'2',X<>'3',write ("Error!").
- create_list(L,NewL):-write(">>"),
- readint(X),
- append(L,X,TempL),
- create_list(TempL,NewL).
- create_list(L,L).
- insert(X,L,[X|L]).
- append([],X,[X]).
- append([H|Xs],X,[H|Ys]):-
- append(Xs,X,Ys).
- length([],0).
- length([_|T],Len):-length(T,Count),
- Len=Count+1.
- change([],_,_,[]).
- change([H|T],C,N,[H|NewT]) :- N>0, N1=N-1, change(T,C,N1,NewT).
- change([_|T],C,0,[C|NewT]) :- change(T,C,0,NewT).
- task(X,C,N,NewT) :-length(X,Len),
- N1=Len-N,
- %N>Len, do('2',L,L),
- change(X,C,N1,NewT).
- goal
- run([]).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д