Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование / WORD / Лекции по ЯП (часть 2).doc
Скачиваний:
95
Добавлен:
15.04.2015
Размер:
2.24 Mб
Скачать
  1. Понятие блока

Структура процедуры и функции состоит из заголовка и блока.

Блок – это фрагмент процедуры (функции) или программы, содержащий в себе действия над некоторыми объектами и описания этих объектов. Действия в блоке заключаются между словами begin и end.

В Паскале блоки самостоятельно не используются, а только в составе подпрограмм и программ.

Примечание. С блоком не надо путать составной оператор. Составной оператор включает только действия, а блок представляет собой законченную конструкцию, где имеются и описания и действия.

Блоки бываютвнешние (охватывающие) и внутренние.

Program p1; блок 1 a, b, c L:real

var

a, b, c, L : real;

procedure p2; блок 2 x, y, z

var

x, y, z : real; i, j, k L:integer

procedure p3; блок 3

var

i, j, k, L : integer;

begin

...

end;

begin

...

end;

begin

...

end.

В рассмотренном примере два внутренних блока и два внешних:

Блоки 2 и 3 являются внутренними для блока 1.

Блоки 1 и 2 являются внешними для блока 3.

Приведенная программа имеет, как говорят, блочную структуру.

  1. Область действия и время жизни переменных

Область действия переменной – это правила, которые устанавливают, какие данные доступны из данного места программы.

Область действия также влияет на время жизни переменной, т.е. время, в течение которого переменная хранится в памяти.

С точки зрения области действия переменных различают три типа переменных:

  • глобальные,

  • локальные

  • формальные параметры.

Правила области действия определяют, где каждая из них может применяться.

Локальные переменные – это переменные, которые описаны в конкретном блоке.

Глобальные переменные - это переменные, объявленные во внешнем блоке (в охватывающем).

Формальные параметры - это переменные, объявленные при описании процедур или функций. Формальные параметры могут использоваться в теле процедуры так же, как локальные переменные, которыми они по сути дела и являются.

В рассмотренном примере в блоке 3 видны: i, j, k, l, x, y, z, a, b, c.

В блоке 2 видны: x, y, z (внешне описанные), a, b, c, l, (описанные в охватывающем блоке).

Примечание. В блоке 3 переменная l будет видна как целая, а в блоке 2 - как вещественная. В блоке 2 будут не видны те переменные, которые описаны в блоке 3.

Особенности локальных переменных

Область действия локальной переменной – процедура или функция.

При входе в соответствующий блок локальные объекты принимают следующие значения:

  • формальные параметр принимают значения соответствующих фактических параметров;

  • локальные переменные принимают неопределенные значения.

Особенности глобальных переменных

Глобальные переменные видны во всех блоках, для которых они являются глобальными.

Значения глобальных переменных непредсказуемы до момента присваивания им определенных значений (сами автоматически, как в языке Си, не инициализируются).

Область действия глобальных переменных перекрывается (закрывается) областью видимости одноименного локальных переменных. То есть область видимости глобального объекта уменьшается на величину области видимости одноименного локального объекта.

Примечание (к рисунку).

Из рисунка видно, что переменная L существует в программе в двух вариантах: как вещественная и как целая в блоке 3, где она описана как локальная переменная. В соответствии с правилом в блоке 3 локальная переменная перекрывает объявление ее как глобальной переменной. Поэтому в блоке 3 переменная l будет видна как integer, а за пределами блока 3 как real.

Соседние файлы в папке WORD