Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа со строками
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vadim(b)
Помогите пожалуйста решить вот эту задачу на строки "Строка, содержащая произвольный русский текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, к — 3 раза и т.д"
Вопросов у меня несколько:1)Работу надо сделать в делфях(Как сделать работу с русским текстом) 2)Какие буквы и сколько раз встречаются в этом тексте(т.к у меня требуют работу с русскими буквами) я не знаю как перебрать русские буквы в тексте и как вывести их в граматическо правильной форме. К сожалению есть только начало программы( самое) далее додумать не могу sad.gif
var
st:string;
i,v:byte;
begin
Write('Vvedite stroku ');
readln(st);
for i:=1 to length(st) do
..


Но перебор до длины строки не работает с русскими буквами. Кто поможет тому огромное спасибо.
klem4
Задача решалась ... я правда к соему стыду найти не могу, по этому выкладываю решение.

А вообще в следующий раз пользуйся поиском. Кстати для Delphi есть отдельный раздел.

Вот общий вариант:

var
s: String;
a: Array [char] of Byte;
i: Byte;

begin

write('s = '); readln(s);

for i := 0 to 255 do a[chr(i)] := 0;

for i := 1 to length(s) do
inc(a[s[char(i)]]);

for i := 65 to 239 do
if a[chr(i)] <> 0 then writeln(chr(i), ' - ', a[chr(i)]);
(* тут вообще еще надо сделать проверку на вхождение, или разбить на 3 цикла ('a'..'п', 'р'..'я', 'A'..'Я')) *)

end.
volvo
Вот ссылка на то решение, которое имел в виду klem4:

Задача на обработку текста

Но здесь кроме всего прочего может понадобиться работать не с простыми строками, а с WideStrings, так что не обольщайся, не все так просто smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.