Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Работа со строками

Автор: vadim(b) 14.11.2006 1:11

Помогите пожалуйста решить вот эту задачу на строки "Строка, содержащая произвольный русский текст, состоит не более чем из 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 14.11.2006 1:29

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

А вообще в следующий раз пользуйся поиском. Кстати для 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 14.11.2006 1:53

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

http://forum.pascal.net.ru/index.php?s=&showtopic=3426&view=findpost&p=31202

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