Номер заданного элемента - Prolog
Формулировка задачи:
Найти номер заданного элемента, если он стоит на середине, удалить элементы второй половины списка
помогите все это нормально связать
Листинг программы
- domains
- L=integer*
- N=integer.
- predicates
- conc(L,L,L)
- rev(L,L)
- rd(N,L).
- clauses
- rd(0,[]).
- rd(N,L):-
- readint(A),
- N1=N-1, rd(N1,L1),
- L=[A|L1].
- conc([],X,X).
- conc([H|T],X,[H|Z]):-
- conc(T,X,Z).
- rev([],[]).
- rev([H|T],Z):-
- rev(T,Q), conc(Q,[H],Z).
- /* номер позиции элемента*/
- find_pos(list,int,int)
- /* номер позиции элемента*/
- find_pos([],_,0):-!.
- find_pos([H|T],X,K):- X<>H,K1=K+1,find_pos(T,X,K1).
- find_pos(_,_,K):-write(K),nl,!.
- /* выведет элемент под номером N*/
- find_n([],_,0):-!.
- find_n([_|T],N,K):- N<>K,K1=K+1,find_n(T,N,K1).
- find_n([H|_],_,_):-write(H),nl,!.
- /*--------------------------------*/
- /* удалить элемент с заданным номером */
- del_n(list,int,int,list,list)
Решение задачи: «Номер заданного элемента»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- delbynum(intl,int,intl)
- clauses
- delbynum([],_,[]).
- delbynum([_|T],0,T).
- delbynum([H|T],N,[H|R]) :- N1=N-1, delbynum(T,N1,R).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д