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

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

👇
Ответ:
Sweetkristina
Sweetkristina
13.03.2020
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,7(12 оценок)
Ответ:
Lisova1
Lisova1
13.03.2020
 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,4(2 оценок)
Открыть все ответы
Ответ:
emalets20042
emalets20042
13.03.2020
Var
 a: array[0..99] of integer;
begin
  //заполняем массив случайными числами
  Randomize();
  for var i:=0 to 99 do a[i]:=random(-100,100);
 
  //а теперь заменяем все отрицательные элементы на ноль
  for var i:=0 to 99 do 
    if (a[i]<0) then a[i]:=0;
end.

Вот второй вариант программы, со вводом с клавиатуры и со сдвигом нулевых элементов в хвост массива
program pr_1;constn = 6;varA: array [1..n] of integer; n1: integer;
beginWrite('введите ');for i := 1 to n doread(A[i]);  n1:=n;  for var i:=n downto 1 do{в цикле просматриваем элементы массива}  begin    if A[i] < 0 then {проверяем, нужно ли удалять i-ый элемент}    begin{если нужно – удаляем i-ый элемент}      for var j := i to n1 - 1 do         A[j] := A[j + 1]; {сдвигаем}       A[n1]:=0;        Dec(n1); {уменьшаем количество элементов}    end;  end;  for var i:=1 to n1 do    write(A[i], ' ');end.
4,6(83 оценок)
Ответ:
derkioptu
derkioptu
13.03.2020

Насколько я понял из вопроса, то сообщение зашифровано публичным ключом, то есть использовано асинхронное шифрование. Асинхронное шифрование использует 2 ключа PublicKey и PrivateKey. PublicKey предназначен только для того, чтобы зашифровать сообщение, то есть даже зная публичный ключ, расшифровать сообщение Вы не сможете. PrivateKey используется для расшифровки сообщения. Отсюда вывод: расшифровать сообщение, зашифрованное открытым ключом, может только тот, у кого есть приватный(закрытый) ключ.

4,4(13 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ