Die Webseiten der Fachschaft Informatik am ERG Saalfeld


globale und lokale Variable, aktuelle und formale Parameter

globale Variable
wir bezeichnen damit eine Variable, die im Hauptprogramm definiert wird. Auf diese kann im gesamten Programm zugegriffen werden. In Subroutinen kann diese mit "global" geändert werden.
lokale Variable
lokale Variablen tauchen im Unterricht hauptsächlich in Subroutinen auf. Diese werden dort definiert und sind auch nur innerhalb der Subroutine aufrufbar. Eine gleichnamige globale Variable überdeckt die lokale.
aktueller Parameter
das ist ein Wert, der beim Aufruf der Prozedur/Funktion als Parameter übergeben wird.
formaler Parameter
das ist eine Variable, die mit einen aktuellen Parameter belegt wird.
 

Am Beispiel des Programms "Gausssumme" sollen die in der Überschrift angegebenen Begriffe deutlich gemacht werden.

Programm

def gausssumme(zahl):                               #1
  summe = 0                                                 #2

  for summand in range(1,zahl+1):
      summe = summe + summand

  #nur zum Verdeutlichen des Zugriffs auf globale Variablen
  #print(zahl1,zahl2)

  return summe

### Hauptprogramm ###

zahl1 = 40                                                  #3
zahl2 = 100                                                #4
summe = 0                                                 #5

summe = gausssumme(10)                         #6
print("Gausssumme von 10: ",summe)

summe = gausssumme(zahl1)                     #7
print("Gausssumme von ",zahl1,": ",summe)

summe = gausssumme(zahl2)                     #8
print("Gausssumme von ",zahl2,": ",summe)

 

Der Aufruf des Programms sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Geben Sie bei #1, #2, #3, #4 und #5 an, ob es sich um eine globale oder eine lokale Variable handelt.
  3. Geben Sie bei #1, #6, #7 und #8 an, ob es sich um einen aktuellen oder einen formalen Parameter handelt.
  4. Um deutlich zu machen, dass man auch in der Funktion auf globale Variablen zugreifen kann, entfernen Sie in der Zeile über "return" (also bei #print(zahl1,zahl2) ) das Kommentarzeichen. Testen Sie!
  5. Auf welche globale Variable könnte beim Aufruf von gausssumme nicht mehr zugegriffen werden? Begründen Sie!

 

zurück


© ERG Saalfeld   -   HD. Kirmse + Dustin Wiese   12.08.2022