Пусть задан текст представляющий собой последовательность строк. Признак конца текста вводится пользователем. Выведите на печать количество каждой содержащейся в строке латинских и русских прописных букв в порядке частоты их появления.
А вот и решение:
Код
program stroki;
var
s: string;
i, k, j: integer;
eot: char;
procedure read_str (var s: string);
begin
write('введите строку: ');
readln(s);
end;
procedure poisk (var s: string; var i, k: integer);
var j: integer;
begin
for j:= i+1 to length(s) do
if s[j] = s[i] then
begin
k:= k +1;
s[j]:= '!';
end;
end;
begin
SetConsoleCp(1251);
SetConsoleOutPutCP(1251);
writeln ('введите признак конца текста:');
readln (eot);
writeln('введите текст:');
read_str (s);
while s <> eot do
begin
for i:= 1 to length(s) do
begin
k:= 1;
if s[i] in ['A'..'Z'] then
begin
poisk (s, i, k);
writeln(s[i], ' - ', k);
end;
if (ord(s[i]) in [192..223]) then
begin
poisk (s, i, k);
writeln(s[i], ' - ', k);
end;
end;
read_str (s);
end;
end.
Вопрос: как сделать так, чтобы на печать выводилось количество каждой содержащейся в строке латинских и русских прописных букв в порядке частоты их появления??? Пожалуйста исправьте.