Заменить в исходном списке отрицательные элементы на ноль - Prolog

Узнай цену своей работы

Формулировка задачи:

Есть программа, сказали изменить ее, чтобы отрицательные элементы менялись на ноль. Помогите пожалуйста исправить программу...
Листинг программы
  1. domains
  2. i=integer*
  3. predicates
  4. wwod(i)
  5. ww(i,i)
  6. conc(i,i,i)
  7. zamena(i,i)
  8. clauses
  9. conc([],S1,S1).
  10. conc([X|S1],S2,[X|S]):-conc(S1,S2,S).
  11. wwod(S):-ww([],S).
  12. ww(S,S2):- readln(ST),str_int(ST,X),!,conc(S,[X],S1),ww(S1,S2),nl.
  13. ww(S,S2):-S2=S.
  14. zamena([],[]).
  15. zamena([H1|[H2|T2]],[H3|T3]):-
  16. H1=H2, H3=H1, zamena([H1|T2],[H3|T3]).
  17. zamena([H1|T1],[H1|T3]):-
  18. zamena (T1,T3).
  19. zamena([H|T],[H1|T1]):- H<0,!,T1=0, zamena (T,T1).
  20. zamena([H|T],[H1|T1]):-H=H1.
  21.  
  22. goal
  23. write("‚ўҐ¤ЁвҐ н«Ґ¬Ґ*вл: "),nl,
  24. wwod(S),
  25. zamena(S,L),write(L).

Решение задачи: «Заменить в исходном списке отрицательные элементы на ноль»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. subs(intl,intl)
  7.  
  8. clauses
  9. subs([],[]).
  10. subs([H|T],[0|Q]) :- H<0, subs(T,Q).
  11. subs([H|T],[H|Q]) :- H>=0, subs(T,Q).

Объяснение кода листинга программы

  1. Задана программа на языке Prolog с двумя предикатами: subs(intl,intl) и go(intl).
  2. В первом предикате subs(intl,intl) первый аргумент имеет тип intl, второй аргумент имеет тип intl.
  3. Во втором предикате go(intl) первый аргумент имеет тип intl.
  4. В программе присутствуют две фразы:   1) subs([],[]).   2) subs([H|T],[0|Q]) :- H<0, subs(T,Q).   3) subs([H|T],[H|Q]) :- H>=0, subs(T,Q).
  5. Фраза subs([],[]). является правильным ответом на вопрос: Что происходит, когда в качестве первого аргумента передается пустой список?
  6. Фраза subs([H|T],[0|Q]) :- H<0, subs(T,Q). является правильным ответом на вопрос: Что происходит, когда в качестве первого аргумента передается список с отрицательным элементом?
  7. Фраза subs([H|T],[H|Q]) :- H>=0, subs(T,Q). является правильным ответом на вопрос: Что происходит, когда в качестве первого аргумента передается список с положительным элементом?
  8. В программе используется не более 20 элементов, выделяемых кавычками, для представления значений переменных.
  9. В программе используются следующие типы данных: int для целочисленных значений и intl для значений, которые могут быть отрицательными.
  10. Вероятно, данная программа решает задачу замены отрицательных элементов в списке на ноль.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы