Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Перечислимый и диапазонный типы

Поиск

Целые типы

Ниже приводится таблица целых типов, содержащая также их размер и диапазон допустимых значений.

 

Тип

Размер, байт

Диапазон значений

shortint

-128..127

smallint

-32768..32767

integer, longint

-2147483648..2147483647

int64

-9223372036854775808..9223372036854775807

byte

0..255

word

0..65535

longword, cardinal

0..4294967295

uint64

0..18446744073709551615

Типы integer и longint, а также longword и cardinal являются синонимами.

Максимальные значения для каждого целого типа определены как внешние стандартные константы: MaxInt64, MaxInt, MaxSmallInt, MaxShortInt, MaxUInt64, MaxLongWord, MaxWord, MaxByte.

Для каждого целого типа T определены также следующие константы как члены класса

T.MinValue - константа, представляющая минимальное значение типа T;

T.MaxValue - константа, представляющая максимальное значение типа T;

Для каждого целого типа T определены статические функции

T.Parse(s) - функция, конвертирующая строковое представление числа в значение типа T. Если преобразование невозможно, то генерируется исключение;

T.TryParse(s,res) - функция, конвертирующая строковое представление числа в значение типа T и записывающая его в переменную res. Если преобразование возможно, то возвращается значение True, в противном случае - False.

Кроме того, для T определена экземплярная функция ToString, возвращающая строковое представление переменной данного типа.

Константы целого типа могут представляться как в десятичной, так и в шестнадцатеричной форме, перед шестнадцатеричной константой ставится знак $:

25 3456 $FFFF

Вещественные типы

Ниже приводится таблица вещественных типов, содержащая их размер, количество значащих цифр и диапазон допустимых значений:

Тип

Размер, байт

Количество
значащих цифр

Диапазон значений

real

15-16

-1.8∙10308 .. 1.8∙10308

double

15-16

-1.8∙10308 .. 1.8∙10308

single

7-8

-3.4∙1038 .. 3.4∙1038

Типы real и double являются синонимами. Самое маленькое положительное число типа real приблизительно равно 5.0∙10-324, для типа single оно составляет приблизительно 1.4∙10-45.

Максимальные значения для каждого вещественного типа определены как внешние стандартные константы: MaxReal, MaxDouble и MaxSingle.

Для каждого вещественного типа R определены также следующие константы как члены класса:

R.MinValue - константа, представляющая минимальное значение типа R;

R.MaxValue - константа, представляющая максимальное значение типа R;

R.Epsilon - константа, представляющая самое маленькое положительное число типа R;

R.NaN - константа, представляющая не число (возникает, например, при делении 0/0);

R.NegativeInfinity - константа, представляющая отрицательную бесконечность (возникает, например, при делении -2/0);

R.PositiveInfinity - константа, представляющая положительную бесконечность (возникает, например, при делении 2/0).

Для каждого вещественного типа R определены следующие статические функции:

R.IsNaN(r) - возвращает True, если в r хранится значение R.NaN, и False в противном случае;

R.IsInfinity(r) - возвращает True, если в r хранится значение R.PositiveInfinity или R.NegativeInfinity, и False в противном случае;

R.IsPositiveInfinity(r) - возвращает True, если в r хранится значение R.PositiveInfinity, и False в противном случае;

R.IsNegativeInfinity(r) - возвращает True, если в r хранится значение R.NegativeInfinity, и False в противном случае;

R.Parse(s) - функция, конвертирующая строковое представление числа в значение типа R. Если преобразование невозможно, то генерируется исключение;

R.TryParse(s,res) функция, конвертирующая строковое представление числа в значение типа R и записывающая его в переменную res. Если преобразование возможно, то возвращается значение True, в противном случае - False.

Кроме того, определена экземплярная функция ToString, возвращающая строковое представление переменной типа R.

Вещественные константы можно записывать как в форме с плавающей точкой, так и в экспоненциальной форме:

1.7 0.013 2.5e3 (2500) 1.4e-1 (0.14)

Логический тип

Значения логического типа boolean занимают 1 байт и принимают одно из двух значений, задаваемых предопределенными константами True (истина) и False (ложь).

Для логического типа определены статические функции:

boolean.Parse(s) - функция, конвертирующая строковое представление числа в значение типа boolean. Если преобразование невозможно, то генерируется исключение;

boolean.TryParse(s,res) - функция, конвертирующая строковое представление числа в значение типа boolean и записывающая его в переменную res. Если преобразование возможно, то возвращается значение True, в противном случае - False.

Кроме этого, определена экземплярная функция ToString, возвращающая строковое представление переменной типа boolean.

Логический тип является порядковым. В частности, False<True, Ord(False)=0, Ord(True)=1.

Символьный тип

Символьный тип char занимает 2 байта и хранит Unicode-символ. Символы реализуются типом System.Char платформы .NET.

Стандартные подпрограммы работы с символами представлены здесь.

Члены класса char приведены здесь.

Для преобразования между символами и их кодами в кодировке Windows (CP1251) используются стандартные функции Chr и Ord:

Chr(n) - функция, возвращающая символ с кодом n в кодировке Windows;
Ord(с) - функция, возвращающая значение типа byte, представляющее собой код символа c в кодировке Windows.

Для преобразования между символами и их кодами в кодировке Unicode используются стандартные функции ChrUnicode и OrdUnicode:

ChrUnicode(w) - возвращает символ с кодом w в кодировке Unicode;
OrdUnicode(с) - возвращает значение типа word, представляющее собой код символа c в кодировке Unicode.

Кроме того, выражение #число возвращает Unicode-символ с кодом число (число должно находиться в диапазоне от 0 до 65535).

Аналогичную роль играют явные преобразования типов:

char(w) возвращает символ с кодом w в кодировке Unicode;
word(с) возвращает код символа c в кодировке Unicode.

Перечислимый тип определяется упорядоченным набором идентификаторов.

type typeName = (value1, value2, ..., valuen);

Значения перечислимого типа занимают 4 байта. Каждое значение value представляет собой константу типа typeName, попадающую в текущее пространство имен.

Например:

type
Season = (Winter,Spring,Summer,Autumn);
DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun);

К константе перечислимого типа можно обращаться непосредственно по имени, а можно использовать запись typeName.value, в которой имя константы уточняется именем перечислимого типа, к которому она принадлежит:

var a: DayOfWeek;
a := Mon;
a := DayOfWeek.Wed;

Для значений перечислимого типа можно использовать функции Ord, Pred и Succ, а также процедуры Inc и Dec. Функция Ord возвращает порядковый номер значения в списке констант соответствующего перечислимого типа, нумерация при этом начинается с нуля.

Для перечислимого типа определена экземплярная функция ToString, возвращающая строковое представление переменной перечислимого типа. При выводе значения перечислимого типа с помощью процедуры write также выводится строковое представление значения перечислимого типа.

Например:

typeSeason = (Winter,Spring,Summer,Autumn);
var s: Season;
begin
s := Summer;
writeln(s.ToString); // Summer
writeln(s); // Summer
end.

Диапазонный тип представляет собой подмножество значений целого, символьного или перечислимого типа и описывается в виде a..b, где a - нижняя, b - верхняя граница интервального типа, a<b:

var
intI: 0..10;
intC: 'a'..'z';
intE: Mon..Thr;

Тип, на основе которого строится диапазонный тип, называется базовым для этого диапазонного типа. Значения диапазонного типа занимают в памяти столько же, сколько и значения соответствующего базового типа.



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 3; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.88.104 (0.006 с.)