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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> Помогите расшифровать фрагмент c chr и ord
сообщение
Сообщение #1


Новичок
*

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

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


Подскажите, пожалуйста, что делают данные строки:
Код
case c of
'а'..'п':stmp:=stmp+chr(ord(c)-32);
'р'..'я':stmp:=stmp+chr(ord(c)-80);
else stmp:=stmp+upcase(c);
end;

stmp - переменная типа line...
Не могу врубиться.

Сообщение отредактировано: Alexey -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
что делают данные строки:

Ну, наверное, то же самое, что и вот эти: Выделить заголовки
только работают со строкой...
smile.gif

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Т.е. если с = от а до п, или от р до я, ей присваивается соответствующее значение в латинском алфавите?
а если с - буква лат.алфавита, то в переменную stmp добавляется эта же буква, но большая?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Нет... Ты же не привел фрагмент полностью... Скорее всего, там идет цикл по всем символам строки... И каждый символ переводится в верхний регистр... Чтобы перевести в верхний регистр строчные русские буквы 'а' .. 'п' достаточно из кода буквы вычесть 32, для букв 'р' .. 'я' - вычитается 80, все остальные символы нормально переводятся встроенной функцией Upcase... Ну, и поскольку строка - то переведенный символ добавляется в конец строки-результата...

Итого: скорее всего имеется функция получающая на вход строку символов (любых - русских или латинских), и возвращающая эту же строку переведенную в верхний регистр...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Вот сама функция:
Код
function stupcase(s:line):line;
      var
         stmp:line;
         i:byte;
         c:char;
      begin
       stmp:='';
             for i:=1 to length(s) do
                 begin
                  c:=s[i];
                   case c of
                    ' '..'Ї':stmp:=stmp+chr(ord(c)-32);
                    'а'..'п':stmp:=stmp+chr(ord(c)-80);
                    else stmp:=stmp+upcase(c);
                 end;
      end;
      stupcase:=stmp;
end;

Так оно и есть (вроде), спасибо...
А то не думается об информатике в 12 часов ночи)))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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