Помощь - Поиск - Пользователи - Календарь
Полная версия: помогите с решением
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Frozen83
Люди...помогите...дали мне такое задания для типовика ...озвучиваю: Преобразовать заголовки к верхнему регистру, используя русский и латинский регистры.
Ума не приложу, как делать, а надо. Жду помощи.
volvo
Frozen83
А конкретнее? Это нужно в Паскале или в Дельфи? Что за заголовки?
Frozen83
Нужно в Pascale. А насчет какие заголовки...ммм...не знаю...у меня на руках голое задания...
volvo
Frozen83
Латинские символы строки преобразуются в верхний регистр элементарно при помощи ф-ии UpCase(Ch) - то есть пробегаешь по всей строке и меняешь s[i] на UpCase(s[i])... А вот кириллица - будет всегда привязана к кодировке.
Frozen83
Угу...тока вот я понять не могу никак...что это значит преобразовать к верхнему регистру? Какой будет результат после того как я поменяю s[i] на UpCase(s[i])... ?
volvo
Frozen83
Запусти эту программу:
Код

var s: string; i: byte;
begin
 readln(s); { допустим, 'start' }
 for i := 1 to length(s) do s[i] := upcase(s[i]);
 writeln(s); {'start' поменяется на 'START'}
end.
Frozen83
Пасибки :-)
Frozen83
Все же , как сделать если русские буквы надо преобразовать к верхнему регистру. Так думаю можно массив создать русского алфавита. Не понимаю как нужно определять латинская буква на входе или русская. Мне бы прогу ...
volvo
Frozen83
А самому подумать? Никак?
Код

Function UpperString(s: String): String;
 Var i: Byte;
 Begin
   For i := 1 To Length(s) Do
     If s[i] In ['a'..'z'] Then s[i] := UpCase(s[i])
     Else
       If s[i] In ['а'..'п', 'р'..'я'] Then
         Begin
           { Если пришли сюда, то буквы - русские. Добавляй свой код по переводу кириллицы в верхний регистр }
         End;
   UpperString := s;
 End;
Altair
Вот процедура:
Код
Function UpStr(S:String):String; {перевод строки в верхний регистр}
Var I:Byte;
Begin
For I:=1 To ORD(S[0]) Do
Begin
 Case S[I] Of
  'a'..'z':S[I]:=Chr(Ord(S[I])-$20);
  'а'..'п':S[I]:=Chr(Ord(S[I])-$20);
  'р'..'я':S[I]:=Chr(Ord(S[I])-$50)
 End
End;
UpStr:=S
End;

Предпочитаю пользовыаться всегда ей, она САМАЯ быстрая.
Взято из хакерской проги для взлома PWL виндовса, 10 лет назад! так что это раритет! smile.gif rolleyes.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.