Basic Pascal Tutorial/Chapter 4/Scope/bg
English · Français · Български · 中文(中国) · 日本語
4D - Scope (author: Tao Yue, state: unchanged)
Обхва се отнася за мястото, където са видими определени променливи. Имате процедури вътре в процедурите, променливи вътре в процедурите и вашата работа е да се опитате да разберете кога всяка една променлива може да се види от процедурата.
Глобалната променлива е променлива, дефинирана в основната програма. Всяка подпрограма може да ги вижда, използва и модифицира. Всички подпрограми могат да се извикат и могат да извикат всички други подпрограми, определени преди тях.
Основната точка е: в рамките на всеки блок от код (процедура, функция), единствените идентификатори, които се виждат, са дефинираните преди този блок и са намират вътре или извън този блок.
program ScopeDemo;
var A : integer;
procedure ScopeInner;
var A : integer;
begin
A := 10;
writeln (A)
end;
begin (* Main *)
A := 20;
writeln (A);
ScopeInner;
writeln (A);
end. (* Main *)Резултатът от горната програма е:
20
10
20Причината е, че ако две променливи с еднакви идентификатори са декларирани едновременно в подпрограма и в основната програма, основната програма вижда своята а подпрограмата вижда нейната (не основната). Когато един идентификатор е дефиниран два пъти на различни места се използва локалната дефиниция.
Ето една диаграма на обхвата, която в основата си представлява подредено копие на програма само с променливите и без логиката. Като премахнете логиката на приложението и заградите блокове в рамки, понякога е по-лесно да видите къде са налични зададените променливи. 
- Всеки може да види глобални променливи
A, BиC. - Въпреки това, в процедура
Alphaглобалната дефиниция наAсе заменя с локалната дефиниция. Beta1иBeta2могат да виждат променливиVCR, Betamaxиcassette.Beta1не може да види променливаFailureTooиBeta2не може да видиFailure.- Никоя подпрограма освен
Alphaняма достъп доFиG. - Процедурата
Betaможе да извикаAlphaиBeta. - Функция
Beta2може да извика всяка подпрограма, включително себе си (основната програма не е подпрограма).
From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 4/Scope/bg", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.