Подсчитать в слове все сочетания "нн". Считать, что в последовательности "ннн" "нн" встречается один раз - Prolog
Формулировка задачи:
напишите, пожалуйста, программу подсчета в слове всех сочетаний "нн".
считать, что в последовательности "ннн" "нн" встречается один раз.
Решение задачи: «Подсчитать в слове все сочетания "нн". Считать, что в последовательности "ннн" "нн" встречается один раз»
textual
Листинг программы
predicates
task(string,integer)
clauses
task("",0).
task(S,N) :- frontchar(S,'n',S1), frontchar(S1,'n',S2), task(S2,N2), N=N2+1, !.
task(S,N) :- frontchar(S,_,S1), task(S1,N).
Объяснение кода листинга программы
Код считает количество пар нн в строке.
В коде используется два правила:
- Если первый символ строки не является
н, то вызывается рекурсивный вызов для оставшейся части строки. - Если первый символ строки является
н, то проверяется, является ли второй символ такжен. Если это так, то счётчик увеличивается на 1 и вызывается рекурсивный вызов для оставшейся части строки. Если второй символ не являетсян, то вызывается рекурсивный вызов для оставшейся части строки.