Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по ОАиП 2011.doc
Скачиваний:
10
Добавлен:
24.04.2019
Размер:
339.46 Кб
Скачать

10. Типы данных в ObjectPascal.

ObjectPascal унаследовал от базового языка BorlandPascal все его особенности и достоинства.Так же, как и в BorlandPascal, в Delphi все используемые типы данных можно разделить на две основные группы. К первой относятся стандартные типы, предопределенные спецификацией языка Pascal. На основе этих типов разработчик может описывать собственные типы данных, которые относятся ко второй группе.Кпростымчисловымтипамотносятся: Integer, Cardinal, ShortInt, SmaltInt, LongInt, Int64, Byte, Word, LongWord, Real, Real48, Single, Double, Extended, Comp, Currency. Для процесса обучения достаточно использования Integer для хранения целочисленных значений и Real для вещественных значений.Для символьных данных базовым является тип Char. На его основе созданы два дополнительных типа - AnsiChar и WideChar для использования двух кодировок символов ANSI и Unicode.Введены новые типы для хранения строковой информации. Тип AnsiStringпредназначен для создания переменных, хранящих тексты произвольной длины. Тип WideString осуществляет динамическое выделение памяти для хранения текста. Текст должен быть представлен в кодировке Unicode. Многие функции и процедуры по работе со строковыми данными отличаются от функций и процедур Турбо Паскаля.Массивы стали открытыми, их размер можно задавать динамически. Статические массивы можно описывать по старым правилам, например:

Vara:Array [1..5] OfReal;При описании параметров функции или процедуры допускается следующий вариант:

FunctionPrim (a:ArrayOfReal):RealМассивы в функции передаются как динамические, то есть вместе с адресом массива передается и число элементов массива.В ObjectPascal длина динамических массивов определяется во время выполнения программы. Описав переменную как а:Array OfReal; мы имеем указатель, который будет соответствовать массиву вещественных чисел. Память под него выделяется процедурой SetLength:SetLength(a, 5);.В динамических массивах нумерация начинается только с 0. Хотя это по природе своей указатели, знак разыменования (") не применяется.Дальнейшим развитием идеи динамических массивов являются многомерные динамические массивы:Varaa:ArrayOfArrayOfReal;

В функции SetLength после имени переменной нужного типа можно задать сразу все размерности массива, например: SetLength(aa, 10, 5).Тип дата-время определяется идентификатором TDateTime и предназначен для хранения даты и времени. Тип "дата-время" занимает 8 байт и представляет собой вещественное число с фиксированной дробной частью: в целой части числа хранится дата, в дробной - время. Над данными этого типа определены те же операции, что и над вещественными числами, а в выражениях этого типа могут участвовать константы и переменные целого и вещественного типов. Существуют стандартные процедуры и функции по работе с данными дата-время. Вот некоторые из них:

Date - возвращает текущую дату;

DateToStr (d:TDateTime) - преобразует дату в строку символов;

DateTimeToStr(d:TDateTime) - преобразует дату и время в строку символов;

Time - возвращает текущее время;

TimeToStr(T:TDateTime) - преобразует время в строку.