Logo Host-telecom.com — профессиональный хостинг в Европе! Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS с гибкой конфигурацией: за 1€

Мощные выделенные сервера: от 25€

Собственный Дата-Центр
Поддержка 24/7

хостинг Украина Виртуальный хостинг для сайта от $4,87

Регистрация домена от $2 в год

Партнерская программа – $20 за клиента

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

ATLEX Выделенные серверы: в Европе / в России.

Виртуальные серверы: в Европе / в России.

Партнерская программа

Глава 8. Блоки, локальность и область действия

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

Синтаксис

В общем виде любой блок имеет следующий формат: ----------- ----------- блок ---->¦ раздел +---->¦ раздел +----> ¦ описания ¦ ¦операторов¦ L----------- L----------- раздел ----------T------------------------------------T---> объявления ^ ¦ ^ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ +--->¦ раздел описания +------+ ¦ ¦ ¦ ¦ меток ¦ ¦ ¦ ¦ ¦ L------------------- ¦ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ +--->¦ раздел описания +------+ ¦ ¦ ¦ ¦ констант ¦ ¦ ¦ ¦ ¦ L------------------- ¦ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ +--->¦ раздел описания +------+ ¦ ¦ ¦ ¦ типов ¦ ¦ ¦ ¦ ¦ L------------------- ¦ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ +--->¦ раздел описания +------+ ¦ ¦ ¦ ¦ переменных ¦ ¦ ¦ ¦ ¦ L------------------- ¦ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ +--->¦ оператор exports +------+ ¦ ¦ ¦ L------------------- ¦ ¦ ¦ ¦ ------------------- ¦ ¦ ¦ L--->¦ раздел описания +------- ¦ ¦ ¦процедур и функций¦ ¦ ¦ L------------------- ¦ L------------------------------------------- Раздел описания меток - это та часть блока, где описываются метки, присваиваемые операторам в соответствующем разделе опера- торов. Каждая метка должна помечать только один оператор. раздел -------- -------- ---- описания ------->¦ label +------>¦ метка +--T-->¦ ; +---> меток L-------- ^ L-------- ¦ L---- ¦ ---- ¦ L---+ , +------- L---- Меткой может быть идентификатор или последовательность цифр. Используемая в качестве метки последовательность цифр должна на- ходиться в диапазоне от 0 до 9999. Раздел описания констант содержит описания констант, локаль- ных для этого блока. раздел -------- ------------- описания ----->¦ const +----T->¦ описание +-----------T---> констант L-------- ^ ¦ ¦ константы ¦ ^ ¦ ¦ ¦ L------------- ¦ ¦ ¦ ¦ -------------------- ¦ ¦ ¦ ¦ ¦ описание ¦ ¦ ¦ ¦ L->¦ типизированной +-- ¦ ¦ ¦ константы ¦ ¦ ¦ L-------------------- ¦ L------------------------------- Раздел описания типов включает описания всех типов в блоке. раздел -------- ------------- описания ----->¦ type +------>¦ описание +----T---> типов L-------- ^ ¦ типа ¦ ¦ ¦ L------------- ¦ L----------------------- Раздел описания переменных состоит из описания переменных, локальных для этого блока. раздел ------ ------------- описания ----->¦ var +------>¦ описание +----T---> переменных L------ ^ ¦ переменной ¦ ¦ ¦ L------------- ¦ L----------------------- Раздел описания процедур и функций состоит из описания про- цедур и функций, локальных для этого блока. раздел ------------- описания -----------T->¦ описание +-----T----> процедур и ^ ¦ ¦ процедуры ¦ ^ ¦ функций ¦ ¦ L------------- ¦ ¦ ¦ ¦ ------------- ¦ ¦ ¦ L->¦ описание +--- ¦ ¦ ¦ функции ¦ ¦ ¦ L------------- ¦ ¦ ------------- ¦ +---->¦ описание +-----+ ¦ ¦конструктора¦ ¦ ¦ L------------- ¦ ¦ ------------- ¦ +---->¦ описание +-----+ ¦ ¦деструктора ¦ ¦ ¦ L------------- ¦ L------------------------- В операторе exports перечисляются все процедуры и функции, которые экспортируются данной программой или динамически компону- емой библиотекой. Оператор exports допускается только во внешнем разделе описаний программы или динамически компонуемой библиотеки - в разделе описаний процедуры, функции или модуля его использо- вать нельзя. Раздел операторов определяет операторы или алгоритмические действия, которые выполняются в блоке. раздел ------------ операторов ----->¦ составной +-----> ¦ оператор ¦ L------------

Правила для области действия

Наличие идентификатора или метки в описании означает опреде- ление идентификатора или метки. Каждый раз, когда идентификатор или метка встречаются в программе, они должны находиться в облас- ти действия этого описания.

Область действия для блока

Область действия идентификатора или метки в описании метки, константе, типа, переменной, процедуры или функции распространя- ется от их описания до конца текущего блока, включая все блоки, входящие в текущий блок. Ниже приводится несколько исключений. Идентификатор или метка, описанные во внешнем блоке, могут заново описываться во внутреннем блоке, входящем во внешний блок. До точки описания во внутреннем блоке или после конца вложенного блока идентификатор или метка представляют элемент, описанный во внешнем охватывающем блоке. program Outer; { начало внешней области действия ъ type I = Integer; { определяет I как Integer } var T: I; { определяет T как целочисленную переменную } procedure Inner; { начало внутреннего блока } type T = I; { переопределяет T с типом Integer } var I: T; { переопределяет I как целочисленную переменную } begin I := 1; { конец вложенного блока } end; begin T := 1; { конец внешнего блока } end.

Область действия записи

Область действия идентификатора поля, описанного в определе- нии записи, простирается от точки описания до конца определения типа запись. Кроме того, область действия идентификаторов включа- ет десигнаторы поля и операторы with над ссылками на переменную данного типа записи. Примечание: О типе запись рассказывается в Главе 4.

Область действия объекта

Область действия идентификатора элемента, описанного в объ- ектном типе, простирается от точки описания до конца определения объектного типа и распространяется на все дочерние объектные типы и блоки всех описаний методов объектного типа. Область действия идентификаторов элемента включает десигнаторы поля и операторы with над ссылками на переменную данного объектного типа. Примечание: о типе запись рассказывается в Главе 4.

Область действия модуля

Область действия идентификаторов, описанных в интерфейсной секции модуля, подчиняется правилам области действия блока и распространяется на всех клиентов модуля. Другими словами, прог- раммы и модули, содержащие операторы uses (операторы использова- ния) имеют доступ к идентификаторам, которые описаны в интерфейс- ной части модулей, указанных в этих операторах uses. Каждый модуль в операторе uses определяет свою область дейс- твия, которая охватывает остальные модули и программу в целом. Первый модуль в операторе uses представляет самую внешнюю область действия, а последний модуль представляет самую внутреннюю об- ласть действия. Это означает, что если два или более модулей со- держат описание одного и того же идентификатора, то при неуточ- ненном обращении к этому идентификатору будет выбран тот вариант, который был описан в последнем модуле в операторе uses. Однако, вы можете выбрать любой вариант этого идентификатора, указав уточненный идентификатор. Идентификаторы встроенных констант, типов, переменных, про- цедур и функций Borland Pascal действуют, как если бы они были описаны в блоке, охватывающем все используемые модули и программу в целом. В действительности эти стандартные объекты описаны в мо- дуле System, который используется любой программой или модулем прежде любого модуля, указанного в операторе uses. Это означает, что любой модуль или программа могут переопределить стандартные идентификаторы, а обращение к ним может быть выполнено с помощью уточненного (составного) идентификатора, например, System.Integer или System.Writeln.
                       Назад | Содержание | Вперед

 

Хостинг + Certum Commercial SSL и домен в подарок

VPS: SSD, KVM, бесплатные бэкапы и администрирование 24/7

Бесплатный перенос сайта + подарки к новоселью

хостинг сайтов ГиперХост — хостинг сайтов который Вы искали.

Виртуальный хостинг, Аренда VPS серверов, рация доменных имен, SSL сертификаты

💰 Самые низкие цены на домены

🔒 Отличный хостинг на SSD c бесплатными SSL

💻 Огромнейший выбор dedicated выделенных серверов

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Мощные сервера

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...