![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
vadim(b) |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Реальное имя: Вадим Репутация: ![]() ![]() ![]() |
Помогите пожалуйста решить вот эту задачу на строки "Строка, содержащая произвольный русский текст, состоит не более чем из 200 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, к — 3 раза и т.д"
Вопросов у меня несколько:1)Работу надо сделать в делфях(Как сделать работу с русским текстом) 2)Какие буквы и сколько раз встречаются в этом тексте(т.к у меня требуют работу с русскими буквами) я не знаю как перебрать русские буквы в тексте и как вывести их в граматическо правильной форме. К сожалению есть только начало программы( самое) далее додумать не могу ![]() var
st:string;
i,v:byte;
begin
Write('Vvedite stroku ');
readln(st);
for i:=1 to length(st) do
..
Но перебор до длины строки не работает с русскими буквами. Кто поможет тому огромное спасибо. |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Задача решалась ... я правда к соему стыду найти не могу, по этому выкладываю решение.
А вообще в следующий раз пользуйся поиском. Кстати для 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.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Вот ссылка на то решение, которое имел в виду klem4:
Задача на обработку текста Но здесь кроме всего прочего может понадобиться работать не с простыми строками, а с WideStrings, так что не обольщайся, не все так просто ![]() |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 4:15 |