Программа ** Pascal ABC. С клавиатуры вводится маленькими русскими буквами строка,...

0 голосов
84 просмотров

Программа на Pascal ABC. С клавиатуры вводится маленькими русскими буквами строка, необходимо для каждого символа вывести, а) сколько раз его употребили и б) частоту употребления (отношение а к длине строки, не считая пробелов).
Примечание 1. Выводить только для маленьких русских букв, пробелы не трогать.
Пример. Вводится строка 'раз два три'. нужно вывести:
р - 2 раза, ч.у - 0.27 //Округление до сотых
... Ну и так далее. Два раза один и тот же символ не выводить!
Вводить новые переменные можно в любом количестве.



Информатика (291 баллов) | 84 просмотров
0

Все вопросы в комментариях

Дан 1 ответ
0 голосов
Правильный ответ
var 
len,i:integer;
st:string;
c:char;
ar:array['а'..'я'] of integer;
begin
readln(st);

for i:=1 to length(st) do begin
  if (st[i] in ['а'..'я']) then inc(ar[st[i]]); 
  if (st[i] <> ' ') then inc(len);
  if (st[i] = 'ё') then inc(yo);
end;

for c:='а' to 'я' do 
  if (ar[c] <> 0) then writeln(c,'- ',ar[c], ' ч.у - ',ar[c]/len:1:2);
  if (yo <> 0) then writeln('ё', '- ', yo, ' ч.у - ', yo / len:1:2);
end.
(558 баллов)
0

В принципе, решение получилось неплохое и довольно компактное... Но вот буква ё по таблице ASCII не лежит в промежутке а..я и её эта программа не видит. Да и пока я ждал решения, успел сам её решить (пусть не такая компактная получилась, зато букву ё тоже рассматривает). Но тем не менее - спасибо тебе большое.

0

Да уж, не учел этого к сожалению.. Однако, спасибо!) Не часто попадаются такие добрые люди)

0

а для "ё" можно просто создать отдельную переменную и в конце сделать проверку, если переменная эта неравна нулю, то также вывести её значения

0

переделал под букву ё)

0

спасибо)