Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Приложения к практическим ОАиП.docx
Скачиваний:
68
Добавлен:
10.06.2015
Размер:
213.59 Кб
Скачать

Операции над строками

  1. Операции сравнения. Сравнение происходит посимвольно слева направо: сравниваются коды соответствующих символов, пока не нарушится равенство. Две строки считаются равными, если они равны по длине и совпадают посимвольно.

  2. Строки можно объединять с помощью операции сцепления. Знак операции - «+».

  3. Индексирование. Так как строку можно рассматривать как массив символов, то при помощи индексирования можно организовать доступ к его отдельным символам по их номерам.

Стандартные строковые процедуры и функции

Delete (Str,Poz,N) — удаление N символов строки Str, начиная с позиции Poz. Если значение Poz > 255, возникает программное прерывание.

Insert (Strl, Str2, Роz) –вставка строки Str1 в строку Str2, начиная с позиции Poz.

Например:

Var

Sl, S2 : string[ll] ;

S1 := ' ЕС ';

S2 := 'ЭВМ1841';

Insert(S1,S2,4) ;

В результате выполнения последнего выражения значение строки S2 станет равным 'ЭВМ ЕС 1841'.

Str (IBR,St) — преобразование числового значения величины IBR и помещение результата в строку St. После IBR может записываться формат, аналогичный фор­мату вывода. Если в формате указано недостаточное для вывода количество разря­дов, поле вывода расширяется автоматически до нужной длины.

Val (St,IBR,Code) — преобразует значение St в величину целочисленного или вещественного типа и помещает результат в IBR. Значение St не должно содер­жать незначащих пробелов в начале и в конце. Code — целочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение Code равно нулю, если ошибка обнаружена (например, литерное значение переводится в цифровое), Code будет содержать номер позиции первого ошибочного символа, а значение IBR не определено.

Copy (St,Poz,N) — выделяет из строки St подстроку длиной N символов, начиная с по­зиции Poz. Если Poz > Length(St), то результатом будет пробел; если Poz > 255, воз­никнет ошибка при выполнении. Функция Length описана ниже. Poz, N — цело­численные выражения.

Concat (Strl,Str2,...,StrN) — выполняет сцепление строк Strl, Str2,..,StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцеплен­ных строк не должна превышать 255.

Length (St) — вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип.

Pos (Strl,Str2) — обнаруживает первое появление в строке Str2 подстроки Strl. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Strl. Если в Str2 подстроки Strl не найдено, результат равен 0.

UpCase (Ch) — преобразует строчную букву в прописную. Параметр и резуль­тат имеют литерный тип. Обрабатывает буквы только латинского алфавита.

Примеры программ работы со строковыми переменными

Пример 1. Составить программу, определяющую, является ли введенное слово пе­ревертышем. Перевертышем называется слово, которое одинаково читается как сначала, так и с конца, например: шалаш, казак.

Как видно из определения, для выяснения, является ли слово перевертышем, необхо­димо сравнивать 1-й и последний символ в строке, 2-й и предпоследний, 3-й и предпредпоследний символ, и т. д. до середины слова. Если в процессе сравнения будет установлено от­личие сравниваемых символов, т. е. выясняется, что слово читается слева направо иначе, чем справа налево, значит можно сделать вывод, что это слово не является перевертышем. Если в процессе сравнения не будет выявлено отличие сравниваемых символов, значит это слово — перевертыш. Введем следующие переменные: для хранения слов — Word типа String с максимальным размером слов 30 символов и переменную I целого типа, указываю­щую номер позиции сравниваемого символа от начала строки.

program Perev_Word; {Является ли введенное слово перевертышем?}

Var

I : byte;

Word : string[30];

Begin

Write('Введите слово ');

Readln(Word) ;

{Проверяем символы пооче­редно от начала до середины слова}

for I:=1 to Trunc (Length (Word)/ 2) do

begin

{Если соответствующие символы не одинаковы}

if Word[I]<>Word[Length(Word)-I+1] then

begin

Writein (' Неперевертыи') ;

exit {Выход из цикла и завершение программы, дальше не имеет смысла сравнивать }

end;

end;

Writeln (' Перевертыш');

end.

ПРИЛОЖЕНИЕ 9