Дан текст, длина которого не превосходит 255 знаков (текст и его

Дан текст, длина которого не превосходит 255 знаков (текст и его длина определяются юзером). Символы в тексте могут повторяться. Средствами языка программирования определить информационный вес знака в строке, если знаменито, что данный текст содержит все символы некого алфавита.

Задать свой вопрос
1 ответ
1. Современное решение

// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var s:=ReadlnString('Введите строку:').Select(c-gt;LowCase(c));
  var nd:=s.GroupBy(c-gt;c).Select(c-gt;(c.Key,c.Count)).OrderBy(kv-gt;kv[0]);
  var n:=nd.Count;
  nd.Select(kv-gt;(kv[0],kv[1]/n)).ForEach(kv-gt;Writeln(kv[0],' : ',kv[1]:5:3))
end.

Пример работы
Введите строчку: В чащах юга жил бы цитрус? Да, но липовый экземплярЪ!
  : 0.250
! : 0.028
, : 0.028
? : 0.028
а : 0.139
б : 0.028
в : 0.056
г : 0.028
д : 0.028
е : 0.028
ж : 0.028
з : 0.028
и : 0.083
й : 0.028
к : 0.028
л : 0.083
м : 0.028
н : 0.028
о : 0.028
п : 0.028
р : 0.056
с : 0.028
т : 0.028
у : 0.028
ф : 0.028
х : 0.028
ц : 0.028
ч : 0.028
ш : 0.028
щ : 0.028
ъ : 0.028
ы : 0.056
ь : 0.028
э : 0.028
ю : 0.028
я : 0.028

2. Школьное решение в стиле ТурбоПаскаль 1983г.

uses Crt;
const
  uc:string[33]='АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЪЭЮЯ';
  lc:string[33]='абвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var
  s:string;
  i,n,k,p:integer;
  mc:array[1..255] of char;
  mn:array[1..255] of byte;
  c:char;
begin
  ClrScr;
  Write('Введите строчку: ');
  Readln(s);
  n:=Length(s);
  for i:=1 to 255 do mn[i]:=0;
  k:=0;
  for i:=1 to n do begin
    c:=s[i];
    p:=Pos(c,uc);
    if pgt;0 then c:=lc[p];
    p:=Ord(c);
    if mn[p]=0 then begin
      mc[p]:=s[i];
      mn[p]:=1;
      k:=k+1
      end
    else mn[p]:=mn[p]+1
    end;
  for i:=1 to 255 do
    if mn[i]lt;gt;0 then Writeln(mc[i],' : ',mn[i]/k:5:3);
  ReadKey
end.

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт