Программирование на языке Delphi/§2
Типы данных
[править]Любые данные на языке Delphi характеризуются своими типами. Тип данных определяет множество допустимых значений, которые может иметь какой-либо объект, а также операции, которые применимы к нему. В языке Delphi существует механизм создания новых типов данных, так что их количество в программе может быть очень большим. Целочисленные типы данных относятся к простым типам, то есть каждый целочисленный тип имеет фиксированное количество возможных значений.
Таблица некоторых целочисленных типов данных
[править]В таблице представлены наиболее распространенные целочисленные типы данных. С полным списком вы можете ознакомиться в справке Delphi.
Название | Размер(байт) | Диапазон значений |
---|---|---|
Byte | 1 | 0...255 |
ShortInt | 1 | -128..127 |
SmallInt | 2 | -32 768...32 767 |
Word | 2 | 0...65 535 |
Integer | 4 | - 2 147 483 648... 2 147 483 647 |
Cardinal | 4 | 0..4294967295 |
Int64 | 8 | -9223372036854775808..9223372036854775807 |
UInt64 | 8 | 0..18446744073709551615 |
Все вышеперечисленные типы имеют фиксированный размер, вне зависимости от разрядности целевой платформы. Также,в языке существуют два целых типа, размер которых зависит от разрядности целевой платформы: NativeInt (знаковое целое), и NativeUInt (беззнаковое), размер которых зависит от разрядности и равен 4 и 8 байт для 32- и 64-разрядных платформ. Однако эти типы не являются псевдонимами соответствующих типов фиксированного размера. Так, NativeUInt не является синонимом UInt64 даже при компиляции в 64-разрядный исполняемый код.
Арифметические операции
[править]Для целочисленных типов данных следующие арифметические операции
- Сложение (+)
- Вычитание (-)
- Умножение (*)
- Целочисленное деление (div)
- Остаток от деления (mod)
Операция деления (/) не применима к целочисленным типам данных.
Рассмотрим программу:
{$APPTYPE CONSOLE}
var a,b,c:integer;
begin
a:=10;
b:=23;
c:=40;
a:=c / a; //Деление
b:=b+a; //Сложение
a:=a*b; //умножение
c:=b mod a; //Остаток от деления
end.
При ее компиляции компилятор выдаст ошибку. Подумайте, почему.
Некоторые функции, применимые к целым типам данных
[править]Название | Размер(байт) | Диапазон значений |
---|---|---|
abs(x) | Как у параметра | Возвращает модуль x |
Random(x) | Как у параметра | Возвращает случайное число в диапазоне 0..(x-1) |
sqr(x) | Как у параметра | Возвращает квадрат x |
Пример программы с ипользованием функций:
{$APPTYPE CONSOLE}
var a,b:integer;
begin
a:=100;
b:=-40;
a:=a+abs(b)+random(15);
writeln(a);
readln;
end.