Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 Типы данных.doc
Скачиваний:
17
Добавлен:
15.04.2015
Размер:
121.34 Кб
Скачать

Строковый тип

Строковый тип STRING представляет собой последовательность символов. Максимальная длина строковой переменной равна 255 символов. Описать строковую переменную можно следующим образом:

VAR

S1 : STRING;

S2 : STRING[5];

Переменная S2 имеет максимальную длину в 5 символов, а S1 – в 255 символов. При этом в памяти под переменную отводится на 1 байт больше. Дело в том, что после того, как строковая переменная получила какое-то значение, нулевой байт содержит фактическую длину строки. Имеется возможность доступа к любому элементу строки, указав его номер. Например, если

S1:= ‘abcdef’

то S1[1]=’a’

S1[2]=’b’

S1[0]=#6

Наиболее частая операция над строками их объединение:

S1:=S1+S2 , где S1 и S2 – переменные типа STRING, или:

S1:=S1+’cde’

Объединение строк можно выполнить и с помощью функции CONCAT(S1,S2,…SN).

Функция LENGHT(S) определяет длину строковой переменной S и имеет тип INEGER.

Процедура DELETE(S,IND,N) удаляет N символов из строковой переменной S начиная с символа с номером IND.

Процедура INSERT(SUBS,S,IND) вставляет подстроку SUBS в строку S начиная с символа с номером IND.

Функция COPY(S,IND,N) копирует N символов из строки S, начиная с символа с номером IND.

Функция POS(SUBS,S) типа INTEGER отыскивает в строке S первое вхождение подстроки SUBS и выдаёт номер этой позиции в строке S. Если подстрока SUBS не найдена в строке S, то функция возвращает ноль.

Строковые переменные можно сравнивать с помощью операций отношений. Сравниваются при этом коды символов, начиная с первых символов строк. Если первые символы одинаковы, сравниваются вторые и так далее.

‘ALEXEY’ < ‘SERGEY’

‘BOY’ < ‘GIRL’

Для примера рассмотрим работу программу STRING_T.PAS.

Скалярные типы

В разных классификациях типов в Турбо Паскале присутствуют также скалярные типы, к которым относят перечисляемый тип и тип–диапазон.

Перечисляемый тип задается перечислением тех значений, которые он может получать, Каждое значение именуется некоторым идентификатором и располагается в списке, заключенном в круглые скобки.

COL = (BLACK, RED, BLUE, WHITE). Порядок значений в таком наборе определен последовательностью, в которой перечисляются идентификаторы. Первая константа BLACK имеет порядковый номер 0, вторая – RED – номер 1 и т.д.

При применении функции ORD(X) к значению перечисляемого типа она возвращает целое число, являющееся номером этого значения в списке, например ORD(BLUE)=2.

Можно использовать также функцию PRED(X), которая возвращает предыдущее порядковое значение: PRED(BLUE) = RED, и функцию SUCC, которая возвращает следующее порядковое значение: SUCC(BLUE) = WHITE.

Если описать переменную A1 типом COL, то эквивалентны следующие операторы:

A1 : = BLACK;

A1 : = PRED(RED);

A1 : =COL(0).

К перечисляемому типу справедливы операции отношения, например, BLACK < RED. Переменные любого перечисляемого типа можно объявить в разделе описаний переменных.

Тип-диапазон задается границами своих значений внутри базового типа, например:

DIGIT = ‘0’..’9’

DATE = 1..31

При определении типа-диапазона нужно руководствоваться следующими правилами:

  • два символа .. рассматриваются как один символ и между ними недопустимы пробелы;

  • левая граница диапазона не должна превышать его правую границу.

Тип-диапазон наследует все свойства своего базового типа, но с ограничениями, связанными с меньшим диапазоном его значений.