Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2011, 11:48   #1
Мaрина
 
Регистрация: 28.06.2011
Сообщений: 8
По умолчанию Pascal.найти количество русских букв

Найти количество русских букв в заданной строке символов
Мaрина вне форума Ответить с цитированием
Старый 28.06.2011, 12:09   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

для кодировки 866 MS-DOS
Код:
   count:=0;
   for i:=1 to Length(str) do
   begin
     if (Ord(str[i]) in [128..175, 224..239]) then
       Inc(count)
   end;
для кодировки 1251 Windows
Код:
   count:=0;
   for i:=1 to Length(str) do
   begin
     if (Ord(str[i]) in [192..255]) then
       Inc(count)
   end;
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 28.06.2011 в 12:31.
Jaguar83 вне форума Ответить с цитированием
Старый 28.06.2011, 12:11   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Проблема в чем, что не получается?
Код:
for i:=1 to length(str) do
   if (str[i] in ['a'..'я']) or (str[i] in ['А'..'Я']) then c:=c+1;
Остальное сами напишите надеюсь?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.06.2011, 12:13   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Ё

ё забыли!!
Sasha_Smirnov вне форума Ответить с цитированием
Старый 28.06.2011, 14:34   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Ну тогда пофиксить:
Код:
for i:=1 to length(str) do
   if (((str[i] in ['a'..'я']) or (str[i] in ['А'..'Я'])) or str[i]='ё') or (str[i]='Ё') then c:=c+1;
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 28.06.2011, 16:29   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если речь идёт о Обычном TurboPascal (т.е. о DOS программе, то кодировка 866), и тогда правильное решение дал Jaguar83 - в пост #2

добавить букву Ёё можно так:
Код:
   count:=0;
   for i:=1 to Length(str) do
   begin
     if (Ord(str[i]) in [128..175, 224..241]) then
       Inc(count)
   end;
или, можно записать этот же вариант так (с точки зрения компьютера будет тоже самое, но просто нагляднее:
Код:
   count:=0;
   for i:=1 to Length(str) do
   begin
     if str[i] in ['А'..'п', 'р'..'я','Ё','ё'] then
       Inc(count)
   end;

p.s. сомневающимся рекомендую посмотреть ASCII таблицу...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отображение русских букв oracle Sparky Общие вопросы по Java, Java SE, Kotlin 1 08.02.2011 10:25
Подсчитать количество букв "А" в предложении и общее количество букв.В тексте из файла несколько строк. kvas91 Общие вопросы C/C++ 3 14.11.2010 16:51
Не выводит русских букв didzial Общие вопросы C/C++ 17 14.01.2010 12:04
Фильтр русских букв lavelas Помощь студентам 3 22.12.2009 06:32
Ввод русских букв в Delphi Аццкий Нуп Помощь студентам 3 25.06.2008 23:27