Pascal - Variabler Umfang
Ein Bereich in jeder Programmierung ist ein Bereich des Programms, in dem eine definierte Variable vorhanden sein kann und auf den darüber hinaus nicht zugegriffen werden kann. Es gibt drei Stellen, an denen Variablen in der Programmiersprache Pascal deklariert werden können:
Innerhalb eines Unterprogramms oder eines Blocks, der als lokale Variablen bezeichnet wird
Außerhalb aller Unterprogramme, die als globale Variablen bezeichnet werden
Bei der Definition von Unterprogrammparametern werden die formalen Parameter genannt
Lassen Sie uns erklären, was sind local und global Variablen und formale Parameter.
Lokale Variablen
Variablen, die in einem Unterprogramm oder Block deklariert sind, werden als lokale Variablen bezeichnet. Sie können nur von Anweisungen verwendet werden, die sich in diesem Unterprogramm oder Codeblock befinden. Lokale Variablen sind Unterprogrammen außerhalb ihrer eigenen nicht bekannt. Es folgt das Beispiel mit lokalen Variablen. Hier sind alle Variablen a , b und c lokal für das Programm exLocal .
program exLocal;
var
a, b, c: integer;
begin
(* actual initialization *)
a := 10;
b := 20;
c := a + b;
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
end.
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
value of a = 10 b = 20 c = 30
Lassen Sie uns nun das Programm etwas weiter erweitern, eine Prozedur mit dem Namen display erstellen, die über einen eigenen Satz von Variablen a , b und c verfügt und deren Werte direkt aus dem Programm exLocal anzeigt .
program exLocal;
var
a, b, c: integer;
procedure display;
var
a, b, c: integer;
begin
(* local variables *)
a := 10;
b := 20;
c := a + b;
writeln('Winthin the procedure display');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
end;
begin
a:= 100;
b:= 200;
c:= a + b;
writeln('Winthin the program exlocal');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
display();
end.
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Within the program exlocal
value of a = 100 b = 200 c = 300
Within the procedure display
value of a = 10 b = 20 c = 30
Globale Variablen
Globale Variablen werden außerhalb einer Funktion definiert, normalerweise über dem Programm. Die globalen Variablen behalten ihren Wert während der gesamten Lebensdauer Ihres Programms und können in allen für das Programm definierten Funktionen aufgerufen werden.
EIN globalAuf die Variable kann von jeder Funktion zugegriffen werden. Das heißt, eine globale Variable kann nach ihrer Deklaration im gesamten Programm verwendet werden. Es folgt ein Beispiel mitglobal und local Variablen -
program exGlobal;
var
a, b, c: integer;
procedure display;
var
x, y, z: integer;
begin
(* local variables *)
x := 10;
y := 20;
z := x + y;
(*global variables *)
a := 30;
b:= 40;
c:= a + b;
writeln('Winthin the procedure display');
writeln(' Displaying the global variables a, b, and c');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
writeln('Displaying the local variables x, y, and z');
writeln('value of x = ', x , ' y = ', y, ' and z = ', z);
end;
begin
a:= 100;
b:= 200;
c:= 300;
writeln('Winthin the program exlocal');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
display();
end.
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Within the program exlocal
value of a = 100 b = 200 c = 300
Within the procedure display
Displaying the global variables a, b, and c
value of a = 30 b = 40 c = 70
Displaying the local variables x, y, and z
value of x = 10 y = 20 z = 30
Bitte beachten Sie, dass die Prozeduranzeige Zugriff auf die Variablen a, b und c hat, die globale Variablen in Bezug auf die Anzeige sind, sowie auf ihre eigenen lokalen Variablen. Ein Programm kann für lokale und globale Variablen denselben Namen haben, der Wert der lokalen Variablen innerhalb einer Funktion wird jedoch bevorzugt.
Lassen Sie uns das vorherige Beispiel ein wenig ändern, jetzt haben die lokalen Variablen für die Prozeduranzeige dieselben Namen wie a , b , c -
program exGlobal;
var
a, b, c: integer;
procedure display;
var
a, b, c: integer;
begin
(* local variables *)
a := 10;
b := 20;
c := a + b;
writeln('Winthin the procedure display');
writeln(' Displaying the global variables a, b, and c');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
writeln('Displaying the local variables a, b, and c');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
end;
begin
a:= 100;
b:= 200;
c:= 300;
writeln('Winthin the program exlocal');
writeln('value of a = ', a , ' b = ', b, ' and c = ', c);
display();
end.
Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:
Within the program exlocal
value of a = 100 b = 200 c = 300
Within the procedure display
Displaying the global variables a, b, and c
value of a = 10 b = 20 c = 30
Displaying the local variables a, b, and c
value of a = 10 b = 20 c = 30