
- •Лабораторная работа № 3
- •3.1.1.Глобальные данные
- •3.1.2 Способы передачи параметров
- •3.1.3 Функции
- •3.1.4. Процедуры
- •3.1.5. Передача массивов в качестве параметров
- •3.1.6. Рекурсивные подпрограммы
- •3.2 Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация }
- •3.3. Массивы
- •3.4. Компоненты StringGrid и Memo
- •Ход работы
- •Контрольные вопросы.
Лабораторная работа № 3
Тема : Процедуры, функции, модули в Delphi.
Цель работы: изучить понятия процедуры, функции, модуля; изучить компоненты ввода/вывода данных StringGrid и Memo. Создать проект для работы с массивами средствами Delphi 7.0.
Теоретические сведения.
Сложные программы составляются из концептуальных блоков, значительно более крупных, чем отдельные операторы языка программирования. Такими блоками являются подпрограммы и модули.
Декомпозиция (разбиение) программы на небольшие логически завершенные блоки - это один из основных путей написания программы в ясной и понятной форме.
3.1. Подпрограммы
Подпрограмма - это логически завершенный компонент программы. Подпрограмма представляет собой некоторую функцию обработки информации, которая отображает конкретный набор аргументов в некоторый набор результатов. Определение подпрограммы состоит из двух частей: спецификации и реализации.
Спецификация (прототип) подпрограммы включает:
Тип подпрограммы: function (функция), procedure (процедура).
function - подпрограмма явно возвращает только один результирующий объект данных;
procedure - подпрограмма возвращает более одного значения или действия подпрограммы сводятся только к модификации ее аргументов вместо возвращения результата.
Имя подпрограммы;
Формальные параметры: аргументы (порядок следования, тип каждого аргумента) и результаты (порядок следования, тип каждого результата).
Реализация подпрограммы (тело подпрограммы) включает:
Описание локальных данных, используемых подпрограммой;
Операторы, задающие действия, которые должна выполнить подпрограмма.
Локальные данные и операторы инкапсулированы (спрятаны), так что ни локальные данные, ни операторы по отдельности не доступны Пользователю подпрограммы. Пользователь может только вызвать подпрограмму. В тело подпрограмм могут входить определения других (вложенных) подпрограмм.
Вызывающая программа - программа (подпрограмма), которая обращается к подпрограмме (вызывает подпрограмму).
Оператор вызова - оператор вызывающей программы, с помощью которого она обращается к подпрограмме. Оператор вызова подпрограммы содержит:
имя подпрограммы;
список фактических параметров.
Фактические параметры - это элементы вызывающей программы (константы, переменные, массивы и другие), значения которых передаются в подпрограмму или возвращаются из нее. При вызове подпрограммы значения фактических параметров присваиваются соответствующим формальным параметрам (типы фактических и формальных параметров должны совпадать!).
Вызываемая программа - подпрограмма, к которой обращается вызывающая программа. Вызываемая программа возвращает управление вызывающей программе, которая продолжает свое выполнение с оператора, следующего за оператором вызова.
Схема передачи управления между вызывающей и вызываемой программами приведена на рисунке 3.1.
Рисунок
3.1 - Схема передачи управления между
вызывающей и вызываемой программами
Обмен информацией между вызывающей и вызываемой программами может осуществляться с использованием глобальных данных или передачей параметров.