Basic Pascal Tutorial/Chapter 4/Scope/fr
English · Français · Български · 中文(中国) · 日本語
Tutoriel de Pascal Objet : Sous-programmes / Portée
La portée indique où sont visibles certaines variables. Vous avez des procédures à l'intérieur des procédures, des variables à l'intérieur des procédures et votre travail est d'arriver à comprendre où chaque variable peut être vue par la procédure.
Une variable globale est une variable définie dans le programme principal. Tout sous-programme peut la voir et la modifier. Tous les sous-programmes peuvent s'appeler eux-mêmes et tous les autres sous-programmes définis avant eux.
Le point principal est ici : à l'intérieur de tout bloc de code (procédure, fonction, peu importe), les seuls identificateurs qui sont visibles sont ceux définis avant le bloc, soit dans ce bloc soit hors de ce bloc.
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 *)La sortie du programme ci-dessus est :
20
10
20La raison est : si deux variables sont déclarées avec le même identificateur dans un sous-programme et dans le programme principal, le programme principal voit la sienne et le sous-programme voit la sienne propre (pas celle du programme principal). La définition la plus locale est utilisée quand un identificateur est défini deux fois dans différents endroits.
Voici un tableau de portée qui revient essentiellement à une copie indentée d'un programme avec seulement les variables et moins la logique. En enlevant la logique de l'application et enfermant des blocs dans des boîtes, il est parfois plus facile de voir où certaines variables sont disponibles. 
- Tous peuvent voir les variables globales
A,BetC. - Néanmoins, dans la procédure
Alphala définition globale deAest remplacée par la définition locale. Beta1etBeta2peuvent voir les variablesVCR, Betamaxetcassette.Beta1ne peut pas voir la variableFailureTooetBeta2ne peut pas voirFailure.- Aucun sous-programme sauf
Alphane peuvent avoir accès àFetG. - La procédure
Betapeut appelerAlphaetBeta. - La fonction
Beta2peut appeler tous les sous-programmes, y compris elle-même (le programme principal n'est pas un sous-programme).
NDT :
- La procédure
Alphane peut pas appeler les procéduresBeta,Beta1etBeta2. - La procédure
Betapeut aussi appelerBeta1etBeta2.
From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 4/Scope/fr", 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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
