
Глава III Структура программы в Delphi. Алфавит. Типы данных.
Любая программа в Delphi состоит из файла проекта (файл с расширением DPR) и одного или нескольких модулей (файлы с расширением PAS). Каждый из модулей может рассматриваться как отдельная программа.
Файл проекта представляет собой программу, написанную на языке Object Pascal, и предназначается для обработки компилятором. Эта программа автоматически создается самим Delphi и содержит лишь несколько строк. Она не отображается на экране, потому как содержит управляющую «шапку» и изменение текста файла проекта крайне не желательно. Это необходимо делать только в том случае, если требуется создать так называемое консольное приложение. Давайте посмотрим, какой же текст содержит этот файл. Увидеть его можно, если в главном меню View выбрать пункт Project Source.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Слова, которые выделены жирным шрифтом, являются служебными, то есть словами, которые распознаются Delphi. Из этого примера видно, что начинается программа со служебного слова program и заканчивается служебным словом end.
Между begin и end. находится код основной программы, а до слова begin идет служебная информация. Программа может состоять из нескольких файлов. В этом случае все отдельные файлы нужно как-то объединить в один. Для этого в Delphi введено понятие модуля. Модули – это программные единицы, предназначенные для размещения фрагментов программ.
Мы с вами будем писать в основном модули. Таким образом структуру наших программ в общем виде можно записать так:
unit Unit1;
interface
// Секция интерфейсных объявлений (типы, классы, процедуры и функции которые будут «видны» другим программным модулям)
Uses Windows, Messages, SysUtils; // список модулей, которые используются в этом куске программы.
Const pi=3.1415; // объявление констант
Type vector = array [1..3] of real; // объявление типов пользователя
Var x,y,z : real; I,j,k : integer; a : vector; // объявление переменных.
Implementation
Uses …
Label … // Объявление меток
Const …
Type …
Var …
// Секция реализаций. Здесь раскрывается механизм работы объявленных единиц. То есть собственно сам код (программа Delphi).
Procedure ….
Function ….
begin
// Секция инициации. Используется очень редко и, в основном, опускается вместе со служебным словом begin
end.
Теперь рассмотрим собственно сам язык программирования. Прежде всего рассмотрим сам алфавит языка. В алфавит языка Delphi входят следующие символы:
а) Латинские строчные и прописные буквы: A..Z, a..z. При записи идентификаторов Delphi не различает строчные и прописные буквы, то есть имена FileName, filename, FILENAME, FiLenAmE полностью идентичны.
б) Цифры от 0 до 9.
в) Символ подчеркивания. Дело в том, что имена переменных, типов и т.д. не должны содержать пробелов. Вместо пробела можно использовать символ подчеркивания. Например: Вместо “My first program” – что является не правильным идентификатором можно записать: “My_first_program”.
Все вышеперечисленные символы можно использовать при записи имен. Символы идущие ниже не должны встречаться внутри имен переменных типов и т.д.
г) Пробел – это разделитель языка. Если между двумя буквами будет стоять пробел, то они будут восприниматься как два самостоятельных объекта.
д) Специальные символы: + - * / < > = [ ] { } ( ) , . ; : @ $ # ^ ‘
e) Составные символы, воспринимаемые как один элемент:
<= >= := (* *) (. .) ..
Разделительные пробелы между элементами составных символов. Следует отметить, что такие символы как ! " ~ % \ и т.д., а также символы кириллицы хотя и не входят в алфавит языка, но не могут встречаться в идентификаторах. Delphi имеет очень большое число зарезервированных слов, которые не могут выступать в роли имен (идентификаторов). Например, нельзя ввести переменную end или begin – можно a_end, p_begin. Поскольку мы постоянно упоминали некоторые термины, давайте сформулируем их определения.
Зарезервированные слова – это английские слова, указывающие компилятору на необходимость выполнения определенных действия. Зарезервированные слова не могут использоваться в программе ни для каких иных целей кроме тех, для которых они предназначены.
Идентификаторы – это слова, которыми программист обозначает любой другой элемент программы, кроме зарезервированного слова или комментария. Идентификаторы состоят из одного слова, и записываются только при помощи латинских букв, цифр и символа подчеркивания.
Типы – это специальные конструкции языка, которые рассматриваются компилятором как образцы для создания других элементов программы, таких как переменные, константы, функции.
Константы определяют области памяти, которые не могут изменять своего значения в ходе работы программы. Как и любые другие элементы программы, константы могут иметь свои собственные имена.
Переменные связаны с изменяемыми областями памяти, т.е. с такими ее участками, содержимое которых будет изменяться в ходе работы программы. Переменные всегда объявляются в программе. Для этого после идентификатора переменной ставится двоеточие и имя типа, по образу которого должна строиться переменная.
Подпрограммы – это специальным образом оформленные фрагменты программы. Замечательной особенностью подпрограмм является их значительная независимость от остального текста программы. Говорят, что свойства подпрограммы локализуются в ее теле. Это означает, что если программист что-либо изменит в подпрограмме, ему, как правило, не понадобиться в связи с этим изменять что-либо вне подпрограммы.
Типы данных в Delphi играют огромную роль. Дело в том, что, как было сказано на первой лекции, в его основе лежит язык программирования Pascal, который был специально придуман для обучения студентов программированию. Поскольку начинающий программист может легко допустить ошибку или неточно описать свои действия, компилятор Pascal должен был иметь средства контроля, чтобы вовремя предостеречь его о неточных действиях. Тип определяет множество допустимых значений, которые может иметь тот или иной объект, а также множество допустимых операций, которые применимы к нему. Рассмотрим типы данных, которые определены в Delphi.
Типы
Простые Порядковые
Целые
Вещественные
Логические
Дата–время Символьный
Структурированные Массивы Перечисляемый
Указатели Записи Тип-диапазон
Строки Множества
Процедурные Файлы
Объекты
Варианты
Классы