Заменить в исходном списке отрицательные элементы на ноль - Prolog
Формулировка задачи:
Есть программа, сказали изменить ее, чтобы отрицательные элементы менялись на ноль.
Помогите пожалуйста исправить программу...
Листинг программы
- domains
- i=integer*
- predicates
- wwod(i)
- ww(i,i)
- conc(i,i,i)
- zamena(i,i)
- clauses
- conc([],S1,S1).
- conc([X|S1],S2,[X|S]):-conc(S1,S2,S).
- wwod(S):-ww([],S).
- ww(S,S2):- readln(ST),str_int(ST,X),!,conc(S,[X],S1),ww(S1,S2),nl.
- ww(S,S2):-S2=S.
- zamena([],[]).
- zamena([H1|[H2|T2]],[H3|T3]):-
- H1=H2, H3=H1, zamena([H1|T2],[H3|T3]).
- zamena([H1|T1],[H1|T3]):-
- zamena (T1,T3).
- zamena([H|T],[H1|T1]):- H<0,!,T1=0, zamena (T,T1).
- zamena([H|T],[H1|T1]):-H=H1.
- goal
- write("‚ўҐ¤ЁвҐ н«Ґ¬Ґ*вл: "),nl,
- wwod(S),
- zamena(S,L),write(L).
Решение задачи: «Заменить в исходном списке отрицательные элементы на ноль»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- subs(intl,intl)
- clauses
- subs([],[]).
- subs([H|T],[0|Q]) :- H<0, subs(T,Q).
- subs([H|T],[H|Q]) :- H>=0, subs(T,Q).
Объяснение кода листинга программы
- Задана программа на языке Prolog с двумя предикатами: subs(intl,intl) и go(intl).
- В первом предикате subs(intl,intl) первый аргумент имеет тип intl, второй аргумент имеет тип intl.
- Во втором предикате go(intl) первый аргумент имеет тип intl.
- В программе присутствуют две фразы: 1) subs([],[]). 2) subs([H|T],[0|Q]) :- H<0, subs(T,Q). 3) subs([H|T],[H|Q]) :- H>=0, subs(T,Q).
- Фраза subs([],[]). является правильным ответом на вопрос:
Что происходит, когда в качестве первого аргумента передается пустой список?
- Фраза subs([H|T],[0|Q]) :- H<0, subs(T,Q). является правильным ответом на вопрос:
Что происходит, когда в качестве первого аргумента передается список с отрицательным элементом?
- Фраза subs([H|T],[H|Q]) :- H>=0, subs(T,Q). является правильным ответом на вопрос:
Что происходит, когда в качестве первого аргумента передается список с положительным элементом?
- В программе используется не более 20 элементов, выделяемых кавычками, для представления значений переменных.
- В программе используются следующие типы данных: int для целочисленных значений и intl для значений, которые могут быть отрицательными.
- Вероятно, данная программа решает задачу замены отрицательных элементов в списке на ноль.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д