М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
026k
026k
30.08.2022 07:25 •  Информатика

Написать программу, которая выводит содержимое файла, кроме тех слов длина которых больше 5 символов. str.length()

👇
Открыть все ответы
Ответ:
йврлгквы
йврлгквы
30.08.2022
 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.
4,6(44 оценок)
Ответ:
Const
  n=50; { максимальное число различных слов в строке }
  del=[' ','.',',',':',';','-','!','?','/'];
var
  mw:array[1..n] of string; { найденные слова }
  mk:array[1..n] of integer; { количество повторений слов }
  s,w:string;
  i,j,k,l,m:integer;
  skip,new_word:boolean;
begin
  Write('Введите текст: ');
  Readln(s);
  s:=s+' ';
  Write('Укажите предельное число повторений слова: ');
  Read(k);
  l:=Length(s);
  m:=0;
  skip:=(s[1] in del);
  if skip then w:='' else w:=s[1];
  for i:=2 to l do
    if s[i] in del then begin
      if not skip then begin
        { w содержит очередное найденное слово }
        j:=1; new_word:=true;
        while (j<=m) and new_word do begin
          if w=mw[j] then begin Inc(mk[j]); new_word:=false end;
          Inc(j)
        end;
        if new_word then begin Inc(m); mw[m]:=w; mk[m]:=1 end;
        w:=''; skip:=true
      end
    end
    else
      if skip then begin w:=s[i]; skip:=false end
      else w:=w+s[i];
  { фраза разобрана и проанализирована }
  j:=0; i:=1;
  while (i<=m) and (j=0) do begin
    if mk[i]>k then j:=i;
    Inc(i)
  end;
  if j>0 then begin
    Writeln('Слова, которые встретились больше, чем ',k,' раз:');
    Writeln(mw[j]);
    for i:=j+1 to m do
      if mk[i]>k then Writeln(mw[i]);
  end
  else  Writeln('Нет слов, которые встретились больше, чем ',k,' раз.')
end.

Тестовое решение:
Введите текст: еду, еду в чистом поле; колокольчик дин-дин-дин... страшно, страшно поневоле средь неведомых равнин!
Укажите предельное число повторений слова: 1
Слова, которые встретились больше, чем 1 раз:
еду
дин
страшно
4,5(30 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ