IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Работа со строками
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 20
Пол: Мужской
Реальное имя: Вадим

Репутация: -  0  +


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


Но перебор до длины строки не работает с русскими буквами. Кто поможет тому огромное спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

А вообще в следующий раз пользуйся поиском. Кстати для 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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






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

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

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

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 24.09.2020 20:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name