Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по дисциплине Объектно-ориентирован...doc
Скачиваний:
33
Добавлен:
01.07.2025
Размер:
14 Мб
Скачать
☆

3. Целые типы данных

Целые типы данных используются для представления целых чисел. Они относятся к целым порядковым типам.

Родовыми типами (т.е. обеспечивающими максимальную производительность) среди перечисленных являются Integer и Cardinal. В настоящий момент тип Integer эквивалентен типу Longlnt, но в последующих версиях это может быть изменено.

4. Действительные типы данных

Действительные типы данных предназначены для хранения чисел, имеющих дробную часть.

Родовым (т.е. обеспечивающим максимальную производительность) является тип Real, который в настоящий момент эквивалентен типу Double, но в последующих версиях это может быть изменено.

Наименьшую производительность обеспечивает тип Real48, сохраняемый только для обратной совместимости с более ранними версиями языка.

Тип Extended обладает максимальной точностью, но могут возникать проблемы с его переносимостью на другие платформы.

Тип Comp является, строго говоря, большим целым, а не действительным числом, но отличается от целого, например, тем, что к нему нельзя применять функции инкремента и декремента. Этот тип оставлен только для обратной совместимости с более ранними версиями языка, поскольку его возможности перекрываются целым типом Int64.

Тип Currency используется для представления денежных величин. В памяти он хранится как масштабированное в 10000 раз 8-байтовое целое. Благодаря этому при операциях с величинами типа Currency минимизируются ошибки округления, что очень важно для денежных расчетов. В выражениях, в которых смешаны величины типа Currency с величинами других действительных типов, значения Currency автоматически умножаются или делятся на 10000.

5. Булевы типы данных

Переменные булевых типов данных представляют логические значения, например, true (истина) и false (ложь). Булевы типы относятся к целым порядковым типам.

В отличие от некоторых других языков, Object Pascal не позволяет трактовать целое значение как булеву величину. Поэтому, например, если X — целая переменная, то оператор

if X then .. .

будет воспринят компилятором как синтаксическая ошибка.

Для булевых типов определены операции and (И), or (ИЛИ), not (HE, отрицание) и хог (исключающее ИЛИ). Использование этих операций расширяет возможности по формированию сложных условий в ряде операторов.

6. Символьные типы данных

Символьные типы предназначены для хранения одного символа. Они относятся к целым порядковым типам.

Родовым (т.е. обеспечивающим максимальную производительность) является тип Char, который в настоящий момент эквивалентен типу ANSIChar, но в последующих версиях это может быть изменено. Именно тип Char имеет смысл использовать во всех случаях, кроме обращений к функциям, требующим другой тип символьных данных.

7. Типы строк

Строки представляют собой последовательность символов.

Родовым является тип String, который имеет разный смысл в зависимости от директивы компилятора $Н. Если включена директива {$Н+} (она включена по умолчанию), то String интерпретируется компилятором как тип AnsiString — длинная строка с нулевым символом в конце. Если же включить директиву {$Н-}, то String интерпретируется компилятором как тип ShortString — короткая строка без нулевого символа в конце. Если в объявлении типа после ключевого слова String следует число символов в квадратных скобках (например, String[4]), то, независимо от директив компилятора, тип трактуется как строка без нулевого символа в конце с указанным числом символов.

Стандартная функция Length возвращает число символов в строке, передан­ной ей в качестве параметра. Процедура SetLength устанавливает длину строки.

Для строк определены операции сравнения >, <, = и т.п. Если сравниваются строки разной длины, то большей считается более длинная строка. Если сравниваются строки одинаковой длины, то принимаются в расчет символы в одинаковых, позициях — сравниваются коды этих символов.

Со строками можно оперировать как с индексированными массивами символов. Сцепление (конкатенация) строк осуществляется операцией «+». Например, выражение S1+S2 даст в результате строку, в которой после символов строки S1 будут расположены символы строки S2.

Строки разных типов могут присваиваться друг другу и смешиваться в одном выражении. Компилятор при этом осуществляет автоматическое приведение типов. Но строки, передаваемые как параметры в функции и процедуры, должны иметь тип, указанный в объявлениях этих функций и процедур. В этих случаях при необходимости надо использовать операцию явного приведения типов или другие приемы программирования.

Типы строк можно классифицировать по двум признакам: длинные или короткие строки и строки, использующие или не использующие нулевой символ в конце.