Помогите пожалуйста решить вот эту задачу на строки "Строка, содержащая произвольный русский текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, к — 3 раза и т.д"
Вопросов у меня несколько:1)Работу надо сделать в делфях(Как сделать работу с русским текстом) 2)Какие буквы и сколько раз встречаются в этом тексте(т.к у меня требуют работу с русскими буквами) я не знаю как перебрать русские буквы в тексте и как вывести их в граматическо правильной форме. К сожалению есть только начало программы( самое) далее додумать не могу
var
st:string;
i,v:byte;
begin
Write('Vvedite stroku ');
readln(st);
for i:=1 to length(st) do
..
Задача решалась ... я правда к соему стыду найти не могу, по этому выкладываю решение.
А вообще в следующий раз пользуйся поиском. Кстати для 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.
Вот ссылка на то решение, которое имел в виду klem4:
http://forum.pascal.net.ru/index.php?s=&showtopic=3426&view=findpost&p=31202
Но здесь кроме всего прочего может понадобиться работать не с простыми строками, а с WideStrings, так что не обольщайся, не все так просто