Дана строка в которой содержится осмысленной текстовое сообщение. Слова сообщения разделяются пробелами и знаками препинания. Вывести только те слова, которые встречаются более n раз.

const     
z = 30; // максимально число слов  
var   
s,w : string;   
n,p,i,j,l : integer;   
words : array [1..z] of string;   
kw : array [1..z] of integer;   
r : boolean;    
begin 
writeln (введите строку); 
readln (s); 
writeln (укажите кол-во повторений); 
readln (n);   
l := Length(s); 
p := 1; 
w := ;    
 for i := 1 to l do       
 if (s[i] <> ) and (s[i] <> .) and (s[i] <> ,) then   
   w := w + s[i]    
    else     
begin   
  for j := 1 to p do   
   if w = words[j] then 
      begin   
      kw[j] := kw[j] +1;   
     r := true;     
   end;        
      if not r then   
    begin   
      p := p +1;   
      words[p] := w; 
       kw[p] := kw[p] +1;     
   end;    
    w := ;   
  r := false;   
      end;   
      for i := 1 to p do 
  if kw[i] > n then 
  writeln (words[i]);      
      end.

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку