Определить количество слов в строке - Prolog

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

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

Ввести символьную строку со знаками препинания. Определить в ней количество слов.))))

Решение задачи: «Определить количество слов в строке»

textual
Листинг программы
domains
str=string
strl=str*
int=integer
 
predicates
 
instr(str,char,int,int)
headstr(str,int,str)
tailstr(str,int,str)
split(str,strl)
lens(strl,int)
numwords(str,int)
 
clauses
 
instr("",_,_,0).
instr(S,C,N,N1) :- frontchar(S,C,_), N1=N+1, !.
instr(S,C,N,K)  :- frontchar(S,_,RS), N1=N+1, instr(RS,C,N1,K). 
 
headstr(_,0,"").
headstr(S,L,R) :- frontchar(S,B,RS), L1=L-1, headstr(RS,L1,RR), frontchar(R,B,RR).
 
tailstr(S,0,S).
tailstr(S,N,Q) :- frontchar(S,_,RS), N1=N-1, tailstr(RS,N1,Q).
 
split("",[]).
split(S,[S])   :- instr(S,' ',0,K), K=0,!.
split(S,[H|T]) :- instr(S,' ',0,K), K>1, K1=K-1, headstr(S,K1,H), tailstr(S,K,RS), split(RS,T).
split(S,Q)     :- frontchar(S,' ',RS), split(RS,Q).
 
lens([],0).
lens([_|T],N) :- lens(T,N1), N=N1+1.
 
numwords(S,N) :- split(S,L), lens(L,N).

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


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

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

15   голосов , оценка 4.133 из 5
Похожие ответы