В последовательности символов выделить все русские буквы и определить наиболее часто встречающиеся из них.

// PascalABC.Net 3.0, сборка 1052
const
  Rus=[А..Я];
var
  s:string;
  i,k,t:integer;
  c,c1,tc,sc:char;
  f:array[А..а] of byte; // а - это для Ё
  ch:array[А..а] of char;
begin
  Write(Введите строку: ); Readln(s);
  for c:=А to а do begin f[c]:=0; ch[c]:=c end;
  k:=0;
  for i:=1 to Length(s) do begin
    c:=UpCase(s[i]);
    if c in Rus then begin Inc(f[c]); Inc(k) end
    else
      if c=Ё then begin Inc(f[а]); Inc(k) end;
  end;
  Writeln(Количество русских букв равно ,k);
  { сортировка массива со счетчиком количества букв }
  for c1:=А to Pred(а) do
  for c:=А to Pred(а) do
    if f[c]      t:=f[c]; tc:=ch[c]; sc:=Succ(c);
      f[c]:=f[sc]; ch[c]:=ch[sc];
      f[sc]:=t; ch[sc]:=tc
    end;
  Writeln(Частота встретившихся букв);
  c:=А;
  while (c<=а) and (f[c]>0) do begin
    if ch[c]=а then ch[c]:=Ё;
    Writeln(ch[c], - ,f[c]);
    Inc(c)
  end;
end.

Тестовое решение:
Введите строку: Когда я был парнишкой, носил я брюки клёш
Количество русских букв равно 33
Частота встретившихся букв
К - 4
И - 3
Л - 3
О - 3
А - 2
Б - 2
Н - 2
Р - 2
Ш - 2
Я - 2
Г - 1
Д - 1
Й - 1
П - 1
С - 1
Ы - 1
Ю - 1
Ё - 1

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

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