Подпрограммы

Тема 15

Работа с массивами

Оператор доступа

Тема 14

Оператор доступа служит для удобной и быстрой работы с составными час­тями объектов, в том числе с полями записей. Напомним, что для обраще­ния к полю записи необходимо указывать имя записи и имя этого поля, разделенные точкой. Аналогичным путем образуется имя составной части какого-либо объекта, например, формы или кнопки. Оператор доступа име­ет следующий основной формат:

with <имя объекта> do <оператор>;

Для обращения к составной части объекта можно не указывать имя этого объекта в операторе, расположенном после слова do, т.к. оно уже задано после слова w ith.

Пример.

// Составные имена пишутся полностью

Form1.Canvas.Pen.Color:= clRed;

Form1.Canvas.Pen.Width:=5;

Form1.Canvas.Rectangle(10, 10, 100, 100);

Или

WithForm1.Canvas do

begin

Pen.Color:=clRed;

Pen.Width:=5;

Rectangle (10, 10, 100, 100);

end;

В обоих приведенных примерах на форме красным пером толщиной пять пикселей рисуется прямоугольник. Для обращения к свойствам и методу (процедуре) рисования формы удобно использовать оператор доступа (второй вариант).

Элементы массива располагаются в памяти последовательно. Многомерные массивы располагаются так, что самый правый индекс возрастает самым первым. Индексированные элементы массива называют индексированными переменными. Как правило, операции над массивами – это операции над их элементами. Например, чтобы ввести матрицу A размером 3x4 (3 строки, 4 столбца), можно воспользоваться следующей последовательностью операторов:

for i:=1 to 3 do

for j:=1 to 4 do read(a[i, j]);

При этом значения элементов надо вводить через пробел в следующем порядке: a[1,1], a[1,2], a[1,3], a[1,4], a[2,1],…, a [3,4]. Можно вводить и выводить значения отдельных элементов, а не всего массива, например, read (a [2,3]);

Иногда требуется осуществить поиск в массиве элементов, удовлетворяющих некоторым условиям. Например, пусть надо выяснить, сколько элементов массива A имеют нулевое значение. С этой целью вводят вспомогательную переменную k и используют операторы for и if:

k:=0; for i:=1 to 5 do if a[i]=0 then k:=k+1;

После выполнения цикла значение переменной k будет равно числу элементов массива A с нулевым значением.

Перестановку значений элементов массива также осуществляют с помощью вспомогательной переменной. Пусть, например, надо поменять значения 1-го и 5-го элементов одномерного массива A. Введем вспомогательную переменную того же типа, что и элементы массива A, а затем воспользуемся следующими операторами;

c:=a[5]; a[5]:=a[1]; a[1]:=c;

Подпрограмма – это логически законченная и специальным образом оформленная группа операторов, имеющая имя. Подпрограмму можно вызывать неог­раниченное число раз из различных частей программы. Использование под­программ позволяет улучшить структуру программы и сократить ее размер.

По структуре подпрограмма почти полностью аналогична программе. Она тоже содержит заголовок и блок, однако в блоке подпрограммы отсутству­ет раздел подключения модулей. Кроме того, заголовок подпрограммы по своему оформлению отличается от заголовка программы.

Работа с подпрограммой включает два основных этапа:

o описание подпрограммы;

o вызов подпрограммы.

Любая подпрограмма должна быть предварительно описана, после чего до­ пускается ее вызов. При описании под программы задаются ее имя, список параметров и дейст вия, выполняемые подпрограммой. При вызове подпрограммы указывают имя подпрограммы и список аргументов (фактиче ских параметров), передаваемых подпрограмме для работы.

Кроме того, программист может создавать свои подпрограммы, которые называются пользовательскими.

Подпрограммы делятся на процедуры и функции, имеющие много общего. Основное различие между ними заключается в том, что функция может под своим именем возвращать значение в качестве результата, поэтому ее можно использовать как операнд выражения.

С подпрограммой взаимодействие может осуществляться по управлению и по данным. Взаимодействие по управлению – это передача управления из программы в подпрограмму и организация возврата в программу. Взаимодействие по данным заключается в передаче подпрограмме данных, над которыми она выполняет определенные действия. Такое взаимодействие может осуществляться следующими основными способами:

o с использованием файлов;

o с помощью глобальных переменных;

o с помощью параметров.

Наиболее часто применяется последний способ. При этом различают параметры и аргументы. Параметры (формальные параметры) являются элементами подпрограммы и используются при описании алгоритма, выполняемого подпрограммой.

Аргументы (фактические параметры) являются элементами вызывающей программы. Они замещают параметры при вызове подпрограммы. При этом осуществляется проверка на соответствие типов и количества параметров и аргументов. Имена параметров и аргументов могут различаться, однако их количество и порядок следования должны совпадать, а типы параметров и соответствующих им аргументов должны быть совместимыми.

Для прекращения работы подпрограммы можно использовать процедуру Exit, которая прерывает выполнение операторов подпрограммы и возвращает управление вызывающей программе.

Подпрограммы можно вызывать не только из программы, но и из других подпрограмм.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: