Лекция: Область действия идентификаторов

Программа на языке Pascal имеет модульную структуру и может состоять из ряда вложенных друг в друга блоков. Основная программа — это самый крупный блок, который не входит ни в какой другой. Объекты, описанные в этом блоке, являются глобальными и могут использоваться во всех вложенных блоках. Вложенные блоки — это функции и процедуры. Описанные в них объекты локальны и недоступны во внешних блоках.

Для правильного использования и определения области действия идентификаторов в программе приведем следующие правила:

1. Каждый идентификатор должен быть описан перед тем, как он будет использован.

2. Областью действия идентификатора является блок, в котором он описан.

3. Все идентификаторы в блоке должны быть уникальными, т.е. не повторяться.

4. Один и тот же идентификатор может быть по-разному определен в каждом отдельном блоке.

5. Если идентификатор подпрограммы пользователя совпадает с именем стандартной процедуры или функции, то последние недоступны в пределах области действия подпрограммы, объявленной пользователем, т.е. стандартная функция игнорируется, а выполняется подпрограмма пользователя.

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

Пример 8.2. Определить ближайшую к началу координат точку, находящуюся в верхней полуплоскости, и наиболее удаленную точку, лежащую в нижней полуплоскости. Координаты точек, находящихся в верхней полуплоскости, заданы массивами X1(N) и Y1(N), а лежащие в нижней полуплоскости, — массивами X2(M) и Y2(M), где N £ 40, M £ 60.

Для каждой точки верхней полуплоскости следует определить расстояние от начала координат. Из этих расстояний необходимо найти наименьшее. Такие же действия выполнить для точек, находящихся в нижней полуплоскости, однако найти наибольшее расстояние от начала координат.

Вычисление расстояний от начала координат и нахождение наименьшего или наибольшего из них выполним в подпрограмме-функции.

Использование одной подпрограммы для нахождения наибольшего и наименьшего значений потребует введения дополнительного параметра K, отрицательное значение К используется для нахождения наименьшего, положительное значение К используется для нахождения наибольшего.

В подпрограмму необходимо передать массивы координат точек, их размер, а также параметр К, который может принимать значения + 1 или -1. Результат, полученный в подпрограмме-функции, присваивается ее имени.

еще рефераты
Еще работы по информатике