Создать список позиций заданного элемента в исходном списке - Prolog
Формулировка задачи:
VISUAL PROLOG 5.2. Вроде все сделал, только возникает ошибка компиляции, не могу понять в чем проблема:
Листинг программы
- DOMAINS
- list = integer*
- PREDICATES
- nondeterm vvod(list)
- nondeterm change(integer,integer,list,list)
- nondeterm add(integer,list,list)
- nondeterm doubleChange(integer,integer,integer,integer)
- CLAUSES
- vvod([H|T]):-
- write("Vedite element spiska ili 'ENTER': "),readint(H),nl,
- vvod(T).
- vvod([]).
- add(E,[],[E]):-!.
- add(E,[H|T],[H|T1]):-
- add(E,T,T1).
- doubleChange(X,Y,H,H1):-
- Y = H,
- H1 = X.
- doubleChange(_,_,_,1).
- change(_,_,[],[]).
- change(X,Y,[H|T],List):-
- doubleChange(X,Y,H,H1),
- D = X + 1,
- 1 >< H1,
- change(D,Y,T,B),
- add(H1,B,List),!.
- change(X,Y,[_|T],List):-
- D = X + 1,
- change(D,Y,T,List).
- GOAL
- vvod(L),nl,
- write("Vedite chislo: "), readint(Y),nl
- change(1,Y,L,T),nl,
- write("Answer is : ", T),nl.
Решение задачи: «Создать список позиций заданного элемента в исходном списке»
textual
Листинг программы
- Vedite element spiska ili 'ENTER': 1
- Vedite element spiska ili 'ENTER': 2
- Vedite element spiska ili 'ENTER': 3
- Vedite element spiska ili 'ENTER': 4
- Vedite element spiska ili 'ENTER': 5
- Vedite element spiska ili 'ENTER':
- L=[1,2,3,4,5]
- L=[1,2,3,4]
- L=[1,2,3]
- L=[1,2]
- L=[1]
- L=[]
- 6 Solutions
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д