Вещественные типы
Вещественное число имеет следующую структуру:
где s — знаковый разряд числа; e — экспоненциальная часть, содержит двоичный порядок; m — мантисса числа.
Тип дата–время — TDateTime Числа, аналогичные Currency,занимают 8 байт. В целой части ― дата, в дробной — время. Дата ― количество суток, прошедших с 31 декабря 1899 года, Время — часть суток, прошедшая с 0 часов. Пример: число 40959,5000 соответствует дате 22 февраля 2012 г. и времени 12 часов 00 минут (24*0.5 = 12). Структурированные типы Массивы Элементы массива — данные одного и того же типа. Доступ к элементу осуществляется указанием его индекса (ов). Примеры описаний массивов: Type Mas1 = array [1..10] of Integer; Mas2 = array [1..10] of Mas1; Mas3 = array [1..10,1..10] of Integer; array, of — зарезервированные слова, [1..10] — индексный тип. Общая длина массива не должна превышать 2 Гбайт. Максимальный размер массива типа byte [1..2147483648] Максимальный размер массива типа integer [1..536870912] Присваивания значений массивам var A, B: array [1..10] of Integer; C, D: array [1..10] of Integer; допустимы операторы A:= B; C:= D; не допустимы операторы A:= C; D:= B; Динамические массивы Объявления массивов type Ar1 = array of Integer; Ar2 = array of Real; Var A, B: Ar1; C, D: Ar2; d2: array of array of Real; Процедура распределения памяти SetLength (A,100) устанавливает размер одномерного массива A [0.. 99] В многомерных массивах длины измерений устанавливаются поочередно: SetLength (d2, 3); // Количество столбцов SetLength (d2[0], 3); // Длина 0-го столбца SetLength (d2[1], 3); // Длина 1-го столбца SetLength (d2[2], 3); // Длина 2-го столбца Освобождение памяти Finalize (A); Или A:= Nil; Записи Запись (комбинированный тип) — структура данных, состоящая из фиксированного числа компонент, называемых полями записи. Поля могут иметь различные типы: Type Date = record Day: Byte; Month: 1..12; Year: Word; End; Var A, B, C: Date; Здесь record, end, var — зарезервированные слова; Day, Month, Year — поля записи. Значения переменных одного типа можно присваивать друг другу: A:= B; C:= B; При обращении к полям записи используют составное имя: A.Day:= 22; A.Year:= 2012; A.Month:= 2; Чтобы сократить длину составных имен, применяют оператор присоединения With: With A do Begin Day:= 22; Month:= 2; Year:= 2012 End; Множества — наборы однотипных неповторяющихся элементов от 0 до 255. Type LaM = set of 'a'..'z'; LaB = set of 'A'..'Z'; Var A,B: LaM; E: set of char; C,D: LaB; F: set of byte; Begin A:= ['s','f','a','h']; // Конструкторы множеств C:= ['F'..'R']; F:= [4,8,1,23..45]; E:= [ ]; End. Операции над множествами
Варианты применяются, когда заранее неизвестен тип данных. Var v1,v2,v3,v4,v5: variant; Begin v1:= 1; v2:= 3.141592; v3:= 'Программирование'; v4:= '100'; v5:= v1 + v2 + v4; end. Если значением варианта является массив данных, то такой тип называется вариантным массивом Строки Ø ShortString — короткая строка (0..255 байт) Ø String [N] — короткая строка (0..255 байт) Ø String — длинная строка (0..2 Гбайт) В нулевом байте строки размещается символ, код которого равен текущей длине строки. var s: String [100]; Begin s:= 'abcdefghabcdefghab … '; // строка длиной 65 символов writeln (s[1]); // a writeln (s[2]); // b writeln (length(s)); // 65 writeln (s[0]); // A writeln (ord(S[0])); // 65 end.
|