- •Язык программирования Pascal Алфавит языка Pascal
- •Числа. Представления чисел
- •Имена и идентификаторы.
- •Структура программы на Pascal
- •Типы данных
- •Простые типы данных. Данные целого типа.
- •Данные вещественного типа
- •Данные логического типа
- •Данные символьного типа
- •Стандартные процедуры и функции
- •Арифметические выражения
- •Логическое выражение
- •Оператор присваивания
- •Составной оператор
- •Пустой оператор
- •Операторы ввода
- •Вводи числовых данных
- •Ввод символьных данных
- •Ввод логических данных
- •Вывод данных на экран
- •Оператор выбора или оператор варианта
- •Перечислимый тип данных
- •Ограниченный тип данных или тип диапазон
- •Оператор цикла
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Итерационный цикл
- •Оператор присоединения
- •Подпрограммы
- •Подпрограммы-процедуры
- •Подпрограммы-функции
- •Параметры массивы и параметры строки.
- •Рекурсия
- •Типизированные константы
- •Алгоритм создания последовательного файла.
- •Алгоритм доступа к элементам файла.
- •Алгоритм добавления элементов в последовательный файл.
- •Строковый тип данных. Строковые выражения.
- •Операция отношения.
- •Процедуры.
- •Текстовый файл.
- •Заголовок модуля. Связь модуля с программой.
- •Стандартные модули
- •Объектно-ориентированное программирование (ооп)
- •Работа с массивами
- •Множества
- •Операции над множествами
- •Понятие файла
- •Работа с файлами
- •Структура модуля
- •Стандартные модули языка Delphi
Структура модуля
Логически обособленные группы процедур и функций чрезвычайно удобно объединять в специализированные библиотеки — модули. Для этого язык Delphi предлагает специальные средства и доступную каждому технологию. Приведем общую структуру программного модуля:
Заголовок модуля unit <имя модуля>; Директивы компилятора {$<директивы>}
Интерфейсная часть interface Подключение модулей uses <имя>, ..., <имя>; Константы const ... ; Типы данных type ... ; Переменные var ... ; Заголовки процедур procedure <имя> (<параметры>); Заголовки функций function <имя> (<параметры>): <тип>;
Часть реализации implementation Подключение модулей uses <имя>, ..., <имя>; Константы const ... ; Типы данных type ... ; Переменные var ... ; Реализация процедур procedure <имя>; begin ... end; Реализация функций function <имя>; begin ... end;
Код инициализации initialization <операторы> Код завершения finalization <операторы> end. |
После слова unit записывается имя модуля. Оно должно совпадать с именем файла, в котором находится исходный текст модуля. Например, если файл называется MathLib.pas, то модуль должен иметь имя MathLib. Заголовок модуля формируется автоматически при сохранении файла на диске, поэтому его не следует изменять вручную. Чтобы дать модулю другой заголовок, просто сохраните его на диске под другим именем.
В разделе interface описываются глобальные данные, процедуры и функции, доступные для использования в основной программе и других модулях.
В разделе implementation реализуется программный код глобальных процедур и функций и описываются локальные данные, процедуры и функции, недоступные основной программе и другим модулям.
Блок initialization является необязательным. Он состоит из операторов и выполняется автоматически непосредственно перед запуском основной программы. Блоки инициализации подключенных к программе модулей выполняются в том порядке, в котором они упоминаются в секции uses.
Блок finalization тоже является необязательным. Он состоит из операторов и выполняется автоматически непосредственно после завершения основной программы. Блоки завершения подключенных к программе модулей выполняются в порядке, обратном порядку подключения модулей в секции uses.
Если модуль не нуждается в инициализации и завершении, блоки initialization и finalization можно опустить.
В качестве упражнения давайте создадим модуль и подключим его к основной программе (для этого сначала запустите среду Delphi):
1. Выберите в главном меню команду File | New..., в появившемся диалоговом окне активизируйте значок с подписью Unit и щелкните на кнопке OK (рисунок 2.6).
Рисунок 2.6. Окно среды Delphi для создания нового модуля
2. Вы увидите, что среда Delphi создаст в редакторе кода новую страницу с текстом нового модуля Unit1 (рисунок 2.7):
Рисунок 2.7. Текст нового модуля в редакторе кода
3. Сохраните модуль под именем MathLib, выбрав в меню команду File | Save (рисунок 2.8):
Рисунок 2.8. Окно сохранения модуля
4. Заметьте, что основная программа Console изменилась: в списке подключаемых модулей появилось имя модуля MathLib (рисунок 2.9). После слова in среда Delphi автоматически помещает имя файла, в котором находится модуль. Для стандартных модулей, таких как SysUtils, это не нужно, поскольку их местонахождение хорошо известно.
Рисунок 2.9. Текст программы Console в окне редактора
Теперь перейдем к содержимому модуля. Давайте объявим в нем константу Pi и две функции: Power — вычисление степени числа, и Average — вычисление среднего арифметического двух чисел:
unit MathLib;
interface
const Pi = 3.14;
function Power(X, Y: Double): Double; function Average(X, Y: Double): Double;
implementation
function Power(X, Y: Double): Double; begin Result := Exp(Y * Ln(X)); end;
function Average(X, Y: Double): Double; begin Result := (X + Y) / 2; end;
end. |
Вот как могла бы выглядеть программа, использующая модуль Math:
program Console;
{$APPTYPE CONSOLE}
uses SysUtils, MathLib in 'MathLib.Pas';
begin Writeln(Pi); Writeln(Power(2, 4)); Writeln(Average(2, 4)); Writeln('Press Enter to exit...'); Readln; end. |
После компиляции и запуска программы вы увидите на экране три числа (рисунок 2.10):
Рисунок 2.10. Результат работы программы Console