19. Типы данных. Строки, описание и использование. Стандартные процедуры и функции для обработки строк. Примеры обработки строк.
Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет также и формат внутреннего представления данных в памяти ПК.
Выделяют две группы типов:
– простые (порядковые, вещественные типы и тип дата-время);
– структурированные (строки, массивы, записи, файлы, классы).
Строки, описание и использование.
Строка – это последовательность символов ASCII. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться в пределах от 0 до 255. Для определения данных строкового типа используется идентификатор string, за которым следует заключенное в квадратные скобки значение максимально допустимой длины строки данного типа. Если это значение не указывается, то по умолчанию длина строки принимается равной 255 байтам.
Переменную строкового типа можно определить через описание типа в разделе определения типов или непосредственно в разделе описания переменных. Строковые данные могут использоваться в программе также в качестве констант. Не допускается применение строковых переменных в качестве селектора в операторе case.
Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка. Формат:
type
<имя типа> = string [максимальная длина строки];
var
<идентификатор....> : <имя типа>:
Переменную типа string можно задать и без описания типа:
var идентификатор... .> : string [максимальная длина строки];
Стандартные процедуры и функции для обработки строк.
Delete(St, Poz, N) – удаление N символов строки St, начиная с позиции Poz. Если значение Poz > 255, возникает программное прерывание.
Insert(Str1, Str2, Poz) – вставка строки Str1 в строку Str2, начиная с позиции Poz. Например:
var S1, S2 : String[11];
51:= ' EC.':
52:= 'ЭВМ1841';
Insert(Sl, 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, то возникнет ошибка. Poz, N – целочисленные выражения.
Concat(Strl, Str2, ..., StrN) – выполняет сцепление строк Str1, Str2, ... , StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех сцепленных строк не должна превышать 255, например:
Length(St) – вычисляет текущую длину в символах строки St. Результат имеет целочисленный тип, например:
Pos(Strl, Str2) – обнаруживает первое появление в строке Str2 подстроки Str1. Результат имеет целочисленный тип и равен номеру той позиции, где находится первый символ подстроки Str1. Если в Str2 не содержится подстрока Str1, то результат равен 0.
UpCase(Ch) – преобразует строчную букву в прописную. Параметр и результат имеют литерный тип. Обрабатываются буквы только латинского алфавита, например: