Herunterladen Diese Seite drucken

Sinclair QL Benutzerhandbuch Seite 374

Werbung

PROGRAMMIEREN
EINGABE
ANFORDERN
PAUSE
30
Bei Verwendung
von "Moritz" mit dem Aufruf:
Moritz
zeigt sich, daß alle Werte von p, q und r in "Moritz" erkannt und daher ausgegeben
werden, während "Max" mit den Variablen q und r nichts anfangen kann, weil diese
moritz-spezifisch definiert (lokal) sind.
Die Werte von lokalen Variablen sind nur in der Prozedur definiert, in der sie auch erklärt
werden. Ihr Geltungsbereich
aufgerufen werden. Globale Variablen hingegen sind Allgemeingut
ganzen Programm erkannt.
Vielleicht wundern Sie sich, weshalb man überhaupt lokale Variablen einführt. Um ihre
Nützlichkeit an einem Belspiel zu erläutern, nehmen wir an, Sie schreiben ein Programm,
welches aus mehreren Prozeduren besteht, die Sie entweder selbst früher für ein anderes
Programm definiert haben oder die Sie von jemand anderem übernehmen. Dabei kann
es ohne weiteres vorkommen, daß mehrere dieser Prozeduren Variablen verwenden,
die ganz verschiedene Aufgaben erfüllen, jedoch zufällig denselben Namen haben. Wenn
es sich dabei um globale Variablen handelt, beeinflussen und stören sie sich gegenseitig,
was zu völlig ungewollten Effekten führt. Es gäbe keinen anderen Weg, als jede Prozedur
auf ihre Variablennamen
zu untersuchen und diese gegebenenfalls
Problem taucht nicht auf, wenn die Variablen als lokal deklariert wurden, weil dann jede
unabhängig
von allen anderen funktioniert und modifiziert werden kann.
Es macht auch nichts aus, wenn eine Prozedur eine andere aufruft, die eine Variable
mit demselben Namen enthält - solange mindestens eine von beiden als lokal deklariert
worden ist. In der Prozedur Wahl z.B. wurde eine lokale Variable namens auswahl$
eingeführt. Dabei erübrigte es sich, nachzuprüfen, ob irgend eine der vielen durch Wahl
aufgerufenen Prozeduren unter Umständen eine gleichnamige Variable benutzt, vveileine
Beeinflussung
lokaler Variablen völlig ausgeschlossen
Beim interaktiven Arbeiten mit dem Computer kommt es häufig vor, daß der Benutzer
aufgefordert wird, eine Eingabe vorzunehmen, d.h. dem Computer eine Information über
die Tastatur einzugeben.
Es lohnt sich, für die Ausgabe solcher Aufforderungen
allgemeine Prozedur zu schreiben. Eine einfache Methode zur Ausgabe einer Nachricht
ist, diese in Form eines Parameters an die Prozedur zu übergeben.
Proz
MeLdung;
m$
zeigen
m$ + ":
";
setzen
x$ =kLein(taste())
zeigen
x$
EndeProz
Die Meldung, die ausgegeben werden soll, wird in der lokalen Variablen m$ übergeben.
Die Funktion tastet) wartet einen Tastendruck ab und liefert das entsprechende Zeichen,
das durch die Funktion kleinO auf Kleinbuchstaben
unwichtig ist, ob ein Groß-
das Resultat der Variablen x$ zugewiesen. Dabei handelt es sich um eine globale Variable,
welche die Eingabe auch anderen Prozeduren innerhalb des Programms verfügbar
macht.
Eine weitere praktische Prozedur ist "Pause': Sie verwendet "Meldung" zur Anzeige einer
Nachricht und wartet dann, bis der Benutzer eine Taste drückt. Im allgemeinen ist es
von geringem Interesse, welche Taste angeschlagen wird, und so wird der ursprüngliche
Wert von x$ einer lokalen Variablen, y$, zugewiesen.
Proz
Pause
*****
anm
Auf
Loka L y$
setzen
y$ =x$
zeigen
meLdung;
"BeLiebige
setzen
x$ = y$
EndeProz
erstreckt sich nicht auf Prozeduren, die von dieser ersten
oder ein Kleinbuchstabe
eingegeben wird. Schließlich wird
Tastenanschlag
warten
Zeichentaste
zum Weitermachen
und werden im
zu ändern. Dieses
ist.
eine
umgewandelt
wird, so daß es
*****
dr.ücken"
(
3/85

Werbung

loading

Verwandte Produkte für Sinclair QL