Иллюстрированный самоучитель по Tirbo Pascal


Процедуры и функции - часть 5


{Цикл посимвольного анализа исходной строки} 

for i := 1 to Length(si) do

begin

{Берем из входной строки очередной символ}

с := sl[i];

{Проверяем символ на принадлежность к одному из трех подмассивов}  

if (с >= 'a') and (с <= 'z') then

с := chr(ord('A')+ord(c)-ord('a1)) {А,а - латинские!} 

else if (c >= 'a') and (c <= 'n') then

с := chr(ord('A')+ord(с)-ord('a')) {А,а - русские!} 

else if (c >= 'p') and (с <= 'я') then

с := chr(ord('PI)+ord(c)-ord('p'));

s2 := s2+c 

end 

end; {UpString}

В процедуре вначале с помощью оператора

s2 := '';

подготавливается «пустая» выходная строка, т.е. строка нулевой длины. Затем используется цикл от 1 до длины входной строки s1 (эта длина получается с помощью стандартной функции Length), в ходе которого проверяется принадлежность очередного символа указанным подмассивам и осуществляется необходимая коррекция его внутреннего кода. Для доступа к отдельным символам строки используется замечательное свойство типа данных STRING, позволяющее рассматривать строку как набор (массив) символов. Первый символ этого набора имеет индекс 1, второй - 2 и т.д. Индекс указывается сразу за именем строки в квадратных скобках. Таким образом, s1 [i] -это i-ый символ строки s1. Преобразованный символ добавляется в конец выходной строки.

Добавив комментарии и поместив тело процедуры вместо заглушки в первоначальный вариант программы, получим окончательно ее рабочий вариант (пример 2.10).

Пример 2.10

Program CharsConvert;

{Программа вводит произвольную текстовую строку, преобразует все входящие в нее буквы в прописные и печатает результат преобразования}

PROCEDURE UpString(sl : String; var s2 : String);

{Эта процедура преобразует буквы входной строки si в прописные буквы латинского или русского алфавита и помещает результат преобразования в выходную строку s2. Используется предположение о том, что последовательности латинских букв от «а» до «z» и русских букв. от «а» до «п» и от «р» до «я», а также последовательности соответствующих им прописных букв образуют непрерывные массивы}  




Начало  Назад  Вперед



Книжный магазин