- •Глава 6 Программирование в среде Delphi
- •§1. Разработка линейных программ
- •Этапы разработки программы
- •Целые типы
- •Символьный тип
- •Булевый тип
- •Переменные и константы
- •Оператор присваивания
- •Структура программы на языке Delphi
- •Некоторые функции преобразования типов
- •Среда программирования Delphi Главные составные части среды программирования
- •Структура проекта
- •Сохранение проекта
- •Структура модуля
- •Компиляция и выполнение проекта
- •§2. Стандартные и библиотечные функции в линейных программах
- •Некоторые стандартные библиотечные функции
- •Некоторые функции и процедуры даты
- •Ввод из окна ввода
- •Вывод в окно сообщения
- •Примечание
- •§ 3. Программы с разветвлениями
- •Логические выражения
- •Условный оператор
- •Оператор выбора
- •Оператор перехода
- •Компонент ListBox
- •Компонент tComboBox
- •Некоторые приемы работы с отладчиком
- •Примечание
- •§4. Циклы
- •Операторы цикла
- •Оператор цикла с параметром
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Компонент Memo
- •§ 5. Использование массивов в программах, компонента Memo для ввода данных в массив
- •Массивы
- •Компонент Memo для ввода и вывода массивов
- •§ 6. Разработка многооконных проектов. Двумерные массивы. Компонент StringGrid
- •Компонент StringGrid
- •Технология создания многооконных проектов
- •Ввод и вывод двумерных массивов c помощью компонента StringGrid
- •§7. Внешние файлы
- •Процедуры работы с файлами
- •Главное меню
- •§8. Разработка внутренних процедур и функций
- •Процедуры
- •Функции
- •Литература
§8. Разработка внутренних процедур и функций
В данном параграфе рассматриваются следующие вопросы:понятие подпрограммы, процедуры, функции.
Теория
Подпрограмма представляет собой группу операторов, логически законченную и специальным образом оформленную. Подпрограмму можно вызывать неограниченное число раз из различных частей программы. Использование подпрограмм позволяет улучшить структурированность программы и сократить ее размер.
По структуре подпрограмма почти полностью аналогична программе и содержит заголовок и раздел операторов (блок), однако в блоке подпрограммы отсутствует раздел подключения модулей. Кроме того, заголовок подпрограммы по своему оформлению отличается от заголовка программы.
Работа с подпрограммой состоит из двух этапов:
— описание подпрограммы;
— вызов подпрограммы.
Любая подпрограмма должна быть предварительно описана, после чего допускается ее вызов. При описании подпрограммы указывается ее имя, список параметров и выполняемые подпрограммой действия. При вызове подпрограммы указываются имя подпрограммы и список аргументов (фактических параметров), передаваемых подпрограмме для работы.
В различных модулях Delphi имеется большое число стандартных подпрограмм, которые можно вызывать без предварительного описания. Кроме того, программист может создавать свои подпрограммы, которые также называют пользовательскими. Подпрограммы делятся на процедуры и функции, которые имеют между собой много общего. Основное различие между ними заключается в том, что функция может возвращать под своим именем в качестве результата значение и соответственно может использоваться в качестве операнда выражения.
С подпрограммой взаимодействие осуществляется по управлению и по данным. Взаимодействие по управлению заключается в передаче управления из программы в подпрограмму и организации возврата в программу. Взаимодействие по данным заключается в передаче подпрограмме данных, над которыми она выполняет определенные действия. Этот вид взаимодействия может осуществляться следующими основными способами:
— с использованием файлов;
— с помощью глобальных переменных;
— с помощью параметров.
Наиболее часто используется последний способ. При этом различают параметры и аргументы. Параметры (формальные параметры) являются элементами подпрограммы и используются при описании алгоритма, выполняемого подпрограммой. Аргументы (фактические параметры) являются элементами вызывающей программы. Они замещают параметры при вызове подпрограммы. При этом осуществляется проверка на соответствие типов и количества параметров и аргументов. Имена параметров и аргументов могут различаться, однако их количество и порядок следования должны совпадать, а типы параметров и соответствующих им аргументов должны быть совместимыми. Для прекращения работы подпрограммы можно использовать процедуру Exit, которая прерывает выполнение операторов подпрограммы и возвращает управление вызывающей программе. Подпрограммы можно вызывать не только из программы, но и из других подпрограмм.
Процедуры
Описание процедуры включает в себя заголовок и блок, который, за исключением раздела подключения модулей, не отличается от блока программы.
Заголовок состоит из ключевого слова procedure, имени процедуры и необязательного списка параметров в круглых скобках с указанием типа каждого параметра. Заголовок имеет формат:
Procedure <Имя> [ (формальные параметры) ];
Для обращения к процедуре используется оператор вызова процедуры. Он включает имя процедуры и список фактических параметров, заключенный в круглые скобки. Например, Test(a,b,c), Test — имя вызываемой процедуры, a, b, c — фактические параметры. Процедура Test должна быть описана с помощью подобного заголовка:
Procedure Test(a:integer;b:Real; var c:Real);
где a, b — исходные данные, передаваемые процедуре из вызывающей процедуры;
с — результат работы процедуры, возвращаемый в вызывающую процедуру.