- •2.1.3. Слова-идентификаторы
- •2.1.4. Комментарии
- •2.2.2. Константы
- •2.2.3. Переменные
- •2.3.2. Вещественные типы данных
- •2.3.3. Символьные типы данных
- •2.3.4. Булевские типы данных
- •2.3.5. Определение новых типов данных
- •2.3.6. Перечисляемые типы данных
- •2.3.7. Интервальные типы данных
- •2.3.8. Временной тип данных
- •2.3.9. Типы данных со словом type
- •2.4.2. Арифметические операции
- •2.4.3. Операции отношения
- •2.4.4. Булевские операции
- •2.4.5. Операции с битами
- •2.4.6. Очередность выполнения операций
- •2.5.2. Консольный вывод
- •2.6.1. Заголовок программы
- •2.6.2. Подключение модулей
- •2.6.3. Программный блок
- •2.7.2. Оператор присваивания
- •2.7.3. Оператор вызова процедуры
- •2.7.4. Составной оператор
- •2.7.5. Оператор ветвления if
- •2.7.6. Оператор ветвления case
- •2.7.7. Операторы повтора - циклы
- •2.7.8. Оператор повтора for
- •2.7.9. Оператор повтора repeat
- •2.7.11. Прямая передача управления в операторах повтора
- •2.7.12. Оператор безусловного перехода
- •2.8.2. Стандартные подпрограммы Арифметические функции
- •2.8.3. Процедуры программиста
- •2.8.4. Функции программиста
- •2.8.5. Параметры процедур и функций
- •2.8.6. Опущенные параметры процедур и функций
- •2.8.7. Перегрузка процедур и функций
- •2.8.8. Соглашения о вызове подпрограмм
- •2.8.9. Рекурсивные подпрограммы
- •2.8.10. Упреждающее объявление процедур и функций
- •2.8.11. Процедурные типы данных
- •2.9.2. Стандартные модули языка Delphi
- •2.9.3. Область действия идентификаторов
- •Глава 3. Объектно-ориентированное программирование (ооп). Часть I
- •Глава 6. Интерфейсы
- •Глава 7. Проект приложения.
- •Глава 8. Меню, строка состояния и панель инструментов. Часть I
- •Глава 8. Меню, строка состояния и панель инструментов. Часть II
- •Глава 8. Меню, строка состояния и панель инструментов. Часть II
- •Глава 8. Меню, строка состояния и панель инструментов. Часть IV
- •Глава 9. Окна диалога. Часть I
- •Глава 9. Окна диалога. Часть II
- •Глава 9. Окна диалога. Часть III
2.2.2. Константы
Данные, независимо от типа, имеют некоторое значение и в программе предстают как константы или переменные. Данные, которые получили значение в начале программы и по своей природе изменяться не могут, называются константами. Константами, например, являются скорость света в вакууме и соотношение единиц измерения (метр, сантиметр, ярд, фут, дюйм), которые имеют научно обоснованные или традиционно принятые постоянные значения. Константы описываются с помощью зарезервированного слова const. За ним идет список имен констант, каждому из которых с помощью знака равенства присваивается значение. Одно присваивание отделяется от другого с помощью точки с запятой. Тип константы распознается компилятором автоматически, поэтому его не надо указывать при описании. Примеры констант:
const
DelphiLanguage = 'Object Pascal';
KylixLanguage = DelphiLanguage;
Yard = 914.4;
Foot = 304.8;
После такого описания для обращения к нужному значению достаточно указать лишь имя соответствующей константы.
Значение константы можно задавать и выражением. Эту возможность удобно использовать для комплексного представления какого-либо понятия. Например, временной промежуток, равный одному месяцу, можно задать так:
const
SecondsInMinute = 60;
SecondsInHour = SecondsInMinute * 60;
SecondsInDay = SecondsInHour * 24;
Очевидно, что, изменив базовую константу SecondsInMinute, можно изменить значение константы SecondsInDay.
При объявлении константы можно указать ее тип:
const
Percent: Double = 0.15;
FileName: string = 'HELP.TXT';
Такие константы называются типизированными; их основное назначение - объявление константных значений составных типов данных.
2.2.3. Переменные
Переменные в отличие от констант могут неограниченное число раз менять свое значение в процессе работы программы. Если в начале программы некоторая переменная X имела значение 0, то в конце программы X может принять значение 10000. Так бывает, например, при суммировании введенных с клавиатуры чисел.
Переменные описываются с помощью зарезервированного слова var. За ним перечисляются идентификаторы переменных, и через двоеточие указывается их тип. Каждая группа переменных отделяется от другой группы точкой с запятой. Например:
var
Index: Integer; // переменная целого типа данных
FileName: string; // переменная строкового типа данных
Sum, Profit: Double; // группа переменных вещественного типа данных
В теле программы переменной можно присвоить значение. Для этого используется составной символ :=, например:
Sum := 5000.0; // переменной Sum присваивается 5000
Percent := 0.15; // переменной Percent присваивается 0.15
Profit := Sum * Percent; // вычисляется произведение двух переменных
// и его результат присваивается переменной
// Profit
Вы можете присвоить значение переменной непосредственно при объявлении:
var
Index: Integer = 1;
Delimiter: Char = ';';
Объявленные таким образом переменные называются инициализированными. На инициализированные переменные накладывается ограничение: они не могут объявляться в подпрограммах (процедурах и функциях). Если переменная не инициализируется при объявлении, то по умолчанию она заполняется нулем.
Каждый используемый в программе элемент данных должен быть описан в разделе const или var. Исключение составляют данные, заданные непосредственно значением, например:
Write(100, 200); // 100 и 200 - данные, заданные значением
2.3. Простые типы данных 2.3.1. Целочисленные типы данных
Целочисленные типы данных применяются для описания целочисленных данных. Для решения различных задач могут потребоваться различные целые числа. В одних задачах счет идет на десятки, в других - на миллионы. Соответственно в языке Delphi имеется несколько целочисленных типов данных, среди которых вы можете выбрать наиболее подходящий для своей задачи (таблица 2.1).
|
Таблица 2.1. Целочисленные типы данных
* Примечание: количество байт памяти, требуемых для хранения переменных обобщенных типов данных, приведено для 32-разрядных процессоров семейства x86.
Пример описания целочисленных данных:
var
X, Y: Integer;
TextLength: Cardinal;
FileSize: Longint;
Позволим себе дать небольшой совет. При программировании алгоритмов предпочтение следует отдавать обобщенным типам даных, поскольку они позволяют достичь максимальной производительности программ при переходе на другие модели компьютеров (например, при переходе на компьютеры, построенные на основе новых 64-разрядных процессоров). Переменные обобщенных типов данных могут храниться в памяти по-разному в зависимости от конкретной модели компьютера, и для работы с ними компилятор может генерировать наиболее оптимальный код. Однако при использовании переменных обобщенных типов данных ни в коем случае нельзя полагаться на формат их хранения в памяти, в частности на размер.