diff options
Diffstat (limited to 'doc/warenhaus/gs-Warenhaus-6')
-rw-r--r-- | doc/warenhaus/gs-Warenhaus-6 | 589 |
1 files changed, 0 insertions, 589 deletions
diff --git a/doc/warenhaus/gs-Warenhaus-6 b/doc/warenhaus/gs-Warenhaus-6 deleted file mode 100644 index 3edf312..0000000 --- a/doc/warenhaus/gs-Warenhaus-6 +++ /dev/null @@ -1,589 +0,0 @@ -#limit (11.0)##pagelength (16.5)##block# -#start (2.0,0.0)# -#page (61)# -#headodd# -#center#gs-Warenhaus#right#% - -#end# -#headeven# -%#center#gs-Warenhaus - -#end# -#center#1 - -#center##on("b")#6 Beschreibung der Programmierschnittstelle#off("b")# - - -In allen GRIN-Projekten soll - zumindest als Erweiterung - der Aspekt des -"algorithmischen Problemlösens" mit in den Unterricht eingebracht werden. Deshalb -ist auch in dem Soester Programm zum Projekt WARENHAUS eine Programmier -schnittstelle realisiert, die es erlaubt, mit Hilfe eines eng begrenzten Befehlssatzes -kleine Programme zur Steuerung der Abläufe im Modell-Warenhaus zu schreiben. - -Wir haben lange überlegt, ob wir diese Programmierschnittstelle überhaupt nach -bilden sollten, weil wir der Meinung sind, daß beim Projekt WARENHAUS das -algorithmische Problemlösen, wenn überhaupt, nur eine sehr untergeordnete Rolle -spielt. Als Randproblematik kann man hier vielleicht untersuchen, wie die Menu- -Funktionen unter dem Oberbegriff 'Kommandos' (vgl. Kapitel 5.4) aufgebaut sind, -und man kann versuchen, diese in eigenen kleinen Programmen nach- oder umzu -bilden. - -Unser zweites Problem war, ob wir uns bei einer eventuellen Nachbildung der -Programmierschnittstelle auch wirklich streng an die Soester Vorgaben halten sollten, -auch wenn sie unseren Vorstellungen und Konzepten teilweise zuwiderlaufen. Eigent -lich sind wir der Meinung, daß uns mit der Programmiersprache ELAN bereits ein -ausgezeichnetes Hilfsmittel zur Verfügung steht, um auch in der Sekundarstufe I in -das algorithmische Problemlösen einzuführen. Gerade das Refinementkonzept - die -Methode der 'schrittweisen Verfeinerung' / der "Modularisierung im Kleinen" - -scheint uns besonders geeignet, typische Denkweisen des algorithmischen Problem -lösens offenzulegen. Lediglich die Konstruktion einer Zählschleife und den Umgang -mit den Fehlermeldungen des ELAN-Compilers halten wir bei Anfängern für etwas -problematisch. - -Wir haben uns deshalb entschlossen, Ihnen die Programmierschnittstelle in zwei -Versionen zur Verfügung zu stellen: In der 'ELAN-Version' können Sie in der üblichen -#page# -ELAN-Umgebung programmieren; das bietet sich z.B. an, wenn Sie #on("b")#gs-Warenhaus#off("b")# -im Wahlpflichtbereich bzw. im Differenzierungsbereich 9/10 einsetzen möchten. Es -ist dann dort nicht nötig, erst eine neue, weniger komfortable "Programmiersprache" -zu erlernen. - -Für den GRIN-Bereich enthält #on("b")#gs-Warenhaus#off("b")# eine weitere Programmierebene -('GRIN-Version'), die an die Soester Vorgaben angelehnt ist, und die es erlaubt, die -dort benutzten Schreibweisen von Befehlen und Kontrollstrukturen zu übernehmen. -Allerdings haben wir dabei eine grundsätzliche Änderung bezüglich der Modularisie -rungsmöglichkeit von 'GRIN-Programmen' vorgenommen, auf die wir in Kapitel 6.1 -näher eingehen werden. - -Ein 'GRIN-Programm' wird bei der Ausführung des Menupunktes 's Starten' (vgl. -Kapitel 5.5) zunächst in ein ELAN-Programm übersetzt und dabei auf formale -Korrektheit überprüft. Werden keine Fehler festgestellt, so wird nun seinerseits das -ELAN-Programm vom Compiler übersetzt und anschließend ausgeführt. Als Benutzer -werden Sie dabei nicht mit Fehlermeldungen des Compilers konfrontiert, da der -#on("b")#gs-Warenhaus#off("b")#-Übersetzer vorher alle formalen Fehler abfängt und zum Korrigieren -anbietet. - -Sollte das System nach erfolgreicher Übersetzung und/oder Compilation bei der -Ausführung des Programms einen Fehler "bemerken" (z.B. falscher Aufruf eines -Befehles), so wird das Programm automatisch abgebrochen und die entsprechende -Fehlermeldung mit der Nummer der Programmzeile, in der der Fehler bemerkt -wurde, im unteren Teil des Bildschirmes in einem 'notebook' gezeigt. Im oberen Teil -wird das Programm zum Verbessern angeboten, wobei der Cursor am Anfang der -fehlerhaften Zeile steht (gilt auch für die 'ELAN-Version'). - -In beiden Versionen der Programmierschnittstelle ist die Schreibweise der Befehle bis -auf die Groß- und Kleinschreibung identisch. Folgende Befehle stehen zu Verfügung: -#page# - GRIN-Version | ELAN-Version -------------------------+------------------------------ - Artikelnummer lesen | artikelnummer lesen - Artikeldaten eingeben | artikeldaten eingeben - Kundennummer lesen | kundennummer lesen - Kundendaten eingeben | kundendaten eingeben - neues Blatt | neues blatt - Rechnungskopf | rechnungskopf - Artikel kaufen | artikel kaufen - Abrechnung | abrechnung - Auskunft | auskunft - Bildschirm neu | bildschirm neu - | nachbestellen - | dezimalwert lesen - | bitmuster lesen - | - - -Die drei letzten Befehle der ELAN-Version haben wir in den GRIN-Befehlssatz nicht -mit aufgenommen, weil wir hier den Befehlssatz möglichst klein (und damit über -sichtlich) halten wollten und diese Befehle bereits unter dem Oberbegriff -'Kommandos' als Menu-Funktionen zur Verfügung stehen. (Ebenso könnte man bei -dem Befehl 'Auskunft' argumentieren. Die entsprechende Menu-Funktion 'Auskunft -einholen' liefert bei jeder Anwahl jedoch immer nur #on("b")#eine#off("b")# Auskunft; in einem -Programm kann man nun die Ausgabe mehrerer Auskünfte hintereinander -realisieren.) - -Die genaue Wirkung der Befehle werden wir in Kapitel 6.3 noch detailliert -beschreiben. Sie entsprechen im wesentlichen den Soester Befehlen, die im -WARENHAUS-Begleitheft des LSW (siehe Anhang) auf den Seiten 99/100 aufgelistet -sind. (Die anderen dort zu findenden Befehle gehören eigentlich nicht in die Befehls -liste der Programmierschnittstelle, weil sie nicht von Programmen aus sondern nur in -einem 'Direktbefehgs-Modus' als Kommando aufrufbar sind! Diese Befehle sind auch -#page# -#on("b")#keine#off("b")# Programmierbefehle im eigentlichen Sinne, sondern entweder "Macros" zum -"Handling" des Warenhausmodells oder Systemkommandos. #on("b")#gs-Warenhaus#off("b")# stellt -diese Befehle unter ähnlichen Namen als Menu-Funktionen zur Verfügung.) - - - -#on("b")#6.1 Schreibweisen und Syntaxregeln in GRIN-Programmen#off("b")# - -Die Regeln, die beim Schreiben eines ELAN-Programms zu beachten sind, werden im -EUMEL/ELAN-Benutzerhandbuch beschrieben; wir werden uns daher hier auf die -GRIN-Version konzentrieren. - -Beginnen wir mit einem Beispiel aus dem WARENHAUS-Begleitheft des LSW. Dort -finden Sie auf Seite 70 (unten) das folgende Programm: - -#on("b")# - PROGRAMM Rechnung schreiben - neues Blatt - Kundennummer lesen - WENN nicht Stoptaste gedrückt - Rechnungskopf - WIEDERHOLE - Artikelnummer lesen - WENN nicht Stoptaste gedrückt - Artikel kaufen - ENDE WENN - BIS Stoptaste gedrückt - Abrechnung - ENDE WENN - ENDE PROGRAMM #off("b")# - -Sie können dieses Programm ohne Änderungen übernehmen und starten, -#on("b")#gs-Warenhaus#off("b")# wird es ohne Beanstandungen ausführen. Bezüglich der Übersicht -lichkeit und des Programmierstils kann man hier sicher geteilter Meinung sein, -darauf gehen wir später noch ein. -#page# -Wir möchten Ihnen zunächst einige Regeln zur Schreibweise und Syntax in 'GRIN- -Programmen' aufzeigen, die sich im obigen Beispiel-Programm beobachten lassen: - -- In jeder Zeile darf nur #on("b")#ein#off("b")# Befehl stehen; Befehgs-Trennzeichen (wie etwa das - Semikolon in ELAN) werden deshalb nicht verwendet. Leerzeichen können - beliebig gesetzt werden, auch leere Zeilen sind zulässig, nicht jedoch - Kommentare. - -- Das Arbeiten mit Variablen (gleich welcher Art) ist #on("b")#nicht#off("b")# möglich; alle Befehle - sind datentypfrei. - -- Schlüsselworte für Kontrollstrukturen (wie z.B. WIEDERHOLE, WENN etc.) - werden in GROSSBUCHSTABEN geschrieben, Ausführungsbefehle und - Bedingungen hingegen klein und gemäß den Regeln der deutschen Sprache mit - großem Anfangsbuchstaben bei Substantiven. Diese Festlegung bezüglich der - Groß- und Kleinschreibung ist bei den von #on("b")#gs-Warenhaus#off("b")# zur Verfügung ge - stellten Befehlen #on("b")#verbindlich#off("b")#, d.h. alle Warenhaus-#on("b")#Grund#off("b")#befehle und Kontroll - strukturen müssen (bis auf Leerzeichen) genauso geschrieben werden, wie sie in - den Kapiteln 6.2 und 6.3 vorgegeben werden! (In der Soester Software können - dagegen Groß- und Kleinbuchstaben beliebig verwendet werden, sodaß dort z.B. - neben 'neues Blatt' auch 'neues blatt', "NEueS BlaTT" u.ä. als identisch ange - sehen werden.) - -- Jedes 'GRIN-Programm' beginnt mit dem 'Schlüsselwort' <PROGRAMM>, - gefolgt von einem Programmnamen, der beliebig gewählt werden kann, jedoch - noch in diese Zeile passen muß. Sinnvoll ist es, hier z.B. den Namen der - Programmdatei einzutragen. - -- Jedes 'GRIN-Programm' endet mit der Zeile <ENDE PROGRAMM>. Nach dieser - Zeile dürfen nur noch leere Zeilen folgen, es sei denn zwischen <PROGRAMM - Programmname> und <ENDE PROGRAMM> wurden Befehle benutzt, die - nicht zum Warenhaus-Grundbefehlssatz gehören. Solche Befehle müssen in einer - 'Befehlserklärung' nach Programmende definiert werden. -#page# -Das obige Programm befriedigt vom äußeren Erscheinungbild her einen PASCAL- -Programmierer wahrscheinlich völlig, einen ELAN-Verwöhnten jedoch sicher nicht. -Die Soester WARENHAUS-Software bietet keinerlei Möglichkeit der Modularisierung -#on("b")#innerhalb#off("b")# eines Programms (Refinement-/Prozedurkonzept o.ä.). Es gibt dort nur die -Möglichkeit, fertiggestellte Programme unter dem Programmnamen dem Basis -befehlssatz "hinzuzufügen" - ein Vorgang, der dem Insertieren unter EUMEL/ELAN -ähnelt. Obwohl es unter EUMEL/ELAN ein leichtes gewesen wäre, diese Möglichkeit -ebenfalls zu realisieren, haben wir davon Abstand genommen, weil auf diese Weise an -jedem Arbeitsplatz eine "eigene" Programmierumgebung entstehen würde. Wir sind -der Meinung, daß für Schüler der Sekundarstufe I eine #on("b")#feste Modellumgebung als -Basis#off("b")# vorhanden sein muß. Außerdem erscheint uns bei der Programmierung "im -Kleinen" die "Bottom-Up"-Technik unangemessen und für den Anfänger viel zu -unübersichtlich zu sein; viel eher wäre hier die "Top-Down"-Methode angebracht. Wir -haben daher die Programmierumgebung in anderer Richtung erweitert und eine -Modularisierungsmöglichkeit realisiert, die dem Refinementkonzept nachempfunden -ist und damit unseren didaktisch-methodischen Vorstellungen viel eher entspricht. - -Bei #on("b")#gs-Warenhaus#off("b")# werden etwa benutzte 'eigene' Befehle #on("b")#innerhalb derselben#off("b")# -Programmdatei 'erklärt' und zwar #on("b")#nach#off("b")# dem Ende des eigentlichen 'Haupt -programms', d.h. also nach der Zeile <ENDE PROGRAMM>. Mit Hilfe dieser Mög -lichkeit könnte das obige Programm besser strukturiert etwa so aussehen: - -#on("b")# - PROGRAMM Rechnung schreiben - neues Blatt - Kundennummer lesen - WENN nicht Stoptaste gedrückt - einkaufen mit Rechnung - ENDE WENN - ENDE PROGRAMM - - einkaufen mit Rechnung: - Rechnungskopf - WIEDERHOLE - Artikelnummer lesen - Artikel eventuell kaufen - BIS Stoptaste gedrückt - Abrechnung -#page# - Artikel eventuell kaufen: - WENN nicht Stoptaste gedrückt - Artikel kaufen - ENDE WENN -#off("b")# - - -Sie sehen, das Programm ist so zwar etwas länger, aber erheblich übersichtlicher -geworden. Für 'neue Befehle' und die zugehörigen 'Befehlserklärungen' gelten -folgende Grundsätze: - -- Die 'Befehlserklärungen' müssen #on("b")#nach#off("b")# <ENDE PROGRAMM> aufgelistet - werden. Die Reihenfolge ist beliebig. - -- Eine 'Befehlserklärung' besteht aus dem zu erklärenden Befehl in (bis auf Leer - zeichen) völlig identischer Schreibweise (!) und einem nachfolgenden Doppel - punkt (:). - -- Ein 'neuer Befehl' darf alle möglichen Zeichen enthalten außer einem Doppel - punkt (:). Außerdem darf solch ein Befehl #on("b")#nicht#off("b")# mit einem 'Schlüsselwort' - beginnen (vgl. Kapitel 6.2). - -- In 'Befehlserklärungen' können neben den Grundbefehlen auch wieder 'neue - Befehle' benutzt werden, die dann wiederum erklärt werden müssen. - -- Befehle dürfen nur #on("b")#einmal#off("b")# erklärt werden, auch wenn sie mehrfach benutzt - werden. - -- Es dürfen nur Befehle erklärt werden, die irgendwo auch wirklich benutzt - werden. - -- Befehlserklärungen sind nur möglich für #on("b")#Ausführungs-Befehle#off("b")#. Es lassen sich - also z.B. keine neuen Bedingungen oder Kontrollstrukturen erklären! - -- Es dürfen innerhalb eines Programms maximal 20 verschiedene 'neue Befehle' - verwendet werden. (Diese Grenze dürfte in Warenhaus-Programmen kaum ein - mal erreicht werden!) -#page# -Formale Verstöße gegen diese Regeln werden bei dem Übersetzungsvorgang sofort -beim Auftauchen des ersten Fehlers zur Korrektur angeboten. Dabei wird in der -oberen Bildschirmhälfte das Programm editiert, wobei der Cursor an den Anfang der -Zeile gesetzt wird, in der sich der (erste) Fehler befindet. In der unteren Bildschirm -hälfte wird über den Paralleleditor in einem 'notebook' die Art des Fehlers mit An -gabe der Zeilennummer genauer beschrieben. - -In der Regel wird hier nur auf #on("b")#einen#off("b")# (nämlich den ersten auftauchenden) Fehler -hingewiesen, so daß Sie das Programm evtl. mehrfach starten müssen, bis alle Fehler -erkannt und beseitigt sind. Manchmal tauchen im Fehler-'notebook' aber auch -mehrere Fehlermeldungen auf (z.B. wenn 'neue Befehle' nicht erklärt oder erklärte -Befehle nicht benutzt wurden). In Extremfällen kann es dabei dazu kommen, daß -nicht mehr das ganze Fehler-'notebook' auf dem Bildschirm sichtbar ist. In diesem -Fall können Sie mit der Tastenfolge <ESC><w> den Cursor zwischen den beiden -Bildschirmhälften hin- und herschalten und mit den Pfeiltasten evtl. nicht-sichtbare -Teile des 'notebooks' oder der Programmdatei auf den Bildschirm holen. (Für -genauere Informationen über den Umgang mit dem EUMEL-Editor lesen Sie bitte im -EUMEL-Benutzerhandbuch nach.) - - -#on("b")#6.2 Kontrollstrukturen#off("b")# - -Sowohl in ELAN-Programmen, als auch in GRIN-Programmen werden Kontroll -strukturen durch 'Schlüsselworte' gekennzeichnet, die grundsätzlich in -GROSSBUCHSTABEN geschrieben werden müssen, um sie deutlich gegenüber Aus -führungsbefehlen und Bedingungen abzuheben. In GRIN-Programmen gibt es -Schlüsselworte für den Anfang und das Ende eines Programms sowie für Schleifen -und einseitige Abfragen. Wir notieren hier nur die in GRIN-Programmen möglichen -Kontrollstrukturen und geben, wenn vorhanden, die zugehörige ELAN-Übersetzung in -Klammern an. - - -#on("b")#Programm-Anfang/Ende:#off("b")# - - #on("b")#PROGRAMM#off("b")# <Programmname> - <Anweisung 1> - <Anweisung 2> - . - . - #on("b")#ENDE PROGRAMM#off("b")# - - -Jedes GRIN-(Haupt-)Programm beginnt mit dem Schlüsselwort 'PROGRAMM', gefolgt -von einem frei wählbaren Programmnamen, der jedoch in dieselbe Zeile passen -muß. Die Zeile 'ENDE PROGRAMM' zeigt das Ende eines GRIN-(Haupt-)Programms -an. Sowohl 'PROGRAMM', als auch 'ENDE PROGRAMM' dürfen in einer Programm -datei nur #on("b")#einmal#off("b")# verwendet werden. Entsprechende Schlüsselworte in ELAN- -Programmen gibt es nicht. - - -#on("b")#Schleifen:#off("b")# - -Schleifen müssen innerhalb des Hauptprogramms oder der Befehlserklärung, in der -sie geöffnet werden, auch wieder geschlossen werden. Schachtelungen sind zwar -zulässig, sollten aber aus Gründen der Übersichtlichkeit vermieden werden. Soll -dennoch innerhalb einer Schleife eine weitere Schleife verwendet werden, so sollte die -innere Schleife über einen 'neuen Befehl' in eine Befehlserklärung 'ausgelagert' -werden. Folgende Schleifenarten sind möglich: - -a) Zählschleife: - - #on("b")#WIEDERHOLE#off("b")# <n> #on("b")#MAL#off("b")# (ELAN: INT VAR i; - <Anweisung 1> FOR i FROM 1 UPTO n REPEAT - <Anweisung 2> . - . . - . . - #on("b")#ENDE WIEDERHOLE#off("b")# END REPEAT) - - -Die Anweisungen innerhalb der Schleife werden <n> - mal ausgeführt. - - -b) Schleife mit Ausgangsbedingung: - - - #on("b")#WIEDERHOLE#off("b")# (ELAN: REPEAT - <Anweisung 1> . - <Anweisung 2> . - . . - . . - #on("b")#BIS#off("b")# <Bedingung> UNTIL bedingung END REPEAT) - - -Die Anweisungen innerhalb der Schleife werden mindestens einmal ausgeführt und -dann solange wiederholt, bis die Bedingung erfüllt ist. Bei der Programmierung ist -darauf zu achten, daß durch die Anweisungen die Bedingung erfüllt werden kann, -denn sonst ist das Resultat eine 'Endlosschleife', deren Ausführung nur durch einen -totalen Programmabbruch (<ESC><h>) beendet werden kann. - - -c) Zählschleife mit Ausgangsbedingung: - - - #on("b")#WIEDERHOLE#off("b")# <n> #on("b")#MAL#off("b")# (ELAN: INT VAR i; - <Anweisung 1> FOR i FROM 1 UPTO n REPEAT - <Anweisung 2> . - . . - . . - #on("b")#BIS#off("b")# <Bedingung> UNTIL bedingung END REPEAT) - - -Die Anweisungen innerhalb der Schleife werden <n>-mal ausgeführt. Im Gegensatz -zur reinen Zählschleife können die Wiederholungen jedoch vorzeitig abgebrochen -werden, nämlich dann, wenn nach irgendeinem Schleifendurchlauf die Bedingung -erfüllt ist. - - -d) Endlosschleife: - - - #on("b")#WIEDERHOLE#off("b")# (ELAN: REPEAT - <Anweisung 1> . - <Anweisung 2> . - . . - . . - #on("b")#ENDE WIEDERHOLE#off("b")# END REPEAT) - - -Die Anweisungen innerhalb der Schleife werden immer wieder ausgeführt. Da keine -begrenzte Anzahl von Durchläufen und auch keine Abbruchbedingung angegeben ist, -kann diese Schleife nur durch einen totalen Programmabbruch (<ESC><h>) -beendet werden. - -(Die Schleifenarten c) und d) sind in der Soester WARENHAUS-Software nicht vor - handen, ergaben sich bei der Konstruktion des #on("b")#gs-Warenhaus#off("b")#-Übersetzers wegen - der analogen Strukturen in ELAN jedoch quasi "von selbst", so daß wir sie auch - zugelassen haben. Schleifen mit Eingangsbedingung (ELAN: WHILE bedingung - REPEAT ... END REPEAT) sind für GRIN-Programme jedoch nicht realisiert.) - - -#on("b")#Einseitige Abfragen:#off("b")# - - - #on("b")#WENN#off("b")# <Bedingung> (ELAN: IF bedingung - <Anweisung 1> THEN anweisung 1; - <Anweisung 2> anweisung 2; - . . - . . - #on("b")#ENDE WENN#off("b")# END IF) - - -Die Anweisungen werden nur ausgeführt, wenn die Bedingung erfüllt ist. (Eine Ent -sprechung zu der in ELAN möglichen 'zweiseitigen Abfrage' (IF ... THEN ... ELSE ... -END IF) gibt es in der GRIN-Version nicht!) - -Eine im Hauptprogramm oder in einer Befehlserklärung begonnene Abfrage ('WENN -...') muß auch im selben Programmteil wieder beendet werden. Ähnlich wie bei -Schleifen ist die Schachtelung von Abfragen innerhalb des Hauptprogramms oder -einer Befehlserklärung zwar zulässig, führt aber zu unübersichtlichen Programmen. -Auch hier sollte man innerhalb einer Abfrage eventuell notwendige weitere Abfragen -durch 'neue Befehle' in Befehlserklärungen auslagern. - - -#on("b")#Zulässige Bedingungen:#off("b")# - -#on("b")#Stoptaste gedrückt#off("b")# (ELAN: stoptaste gedrückt) - - Die Bedingung ist erfüllt (d.h. liefert den Wert 'wahr'), wenn während des bis - herigen Programmablaufs die Tastenfolge <ESC><q> getippt worden ist; - sonst ist sie nicht erfüllt (Wahrheitswert 'falsch'). (Das Tippen von <ESC><q> - beim Verlassen einer Datei hat jedoch #on("b")#keinen#off("b")# Einfluß auf den Wahrheitswert der - Bedingung!) - - Bei jeder Ausführung der Befehle 'Artikelnummer lesen', 'Kundennummer lesen' - und 'Auskunft' wird der Wahrheitswert der Bedingung zunächst immer auf - 'falsch' gesetzt (siehe 6.3), so daß die Abfrage der Bedingung nach einem dieser - Befehle nur dann 'wahr' liefert, wenn #on("b")#während#off("b")# oder #on("b")#nach#off("b")# der letztmaligen Aus - führung eines der drei Befehle <ESC><q> getippt wurde; ein etwa vorher - erfolgtes Tippen dieser Tastenfolge ist somit wirkungslos! - - -#on("b")#nicht Stoptaste gedrückt#off("b")# (ELAN: NOT stoptaste gedrückt) - - Dieses ist das logische Gegenteil von 'Stoptaste gedrückt': 'nicht Stoptaste ge - drückt' ist erfüllt, wenn 'Stoptaste gedrückt' #on("b")#nicht#off("b")# erfüllt ist und umgekehrt. - -Um Probleme bei der Arbeit mit Terminals zu vermeiden, die nicht über den -deutschen Zeichensatz verfügen (Umlaute!), ist bei beiden Bedingungen auch die -Schreibweise 'gedrueckt' erlaubt. - - - -#on("b")#6.3 Detailbeschreibung der Warenhaus-Grundbefehle#off("b")# - -Wie bereits in 6.1 erwähnt, ist die im folgenden vorgegebene Schreibweise der Grund -befehle bezüglich Groß- und Kleinschreibung verbindlich; Leerzeichen dagegen -können beliebig eingefügt oder auch weggelassen werden. Fett gedruckt steht immer -der GRIN-Befehl, in Klammern dahinter der zugehörige ELAN-Befehl. - - -#on("b")#Artikelnummer lesen#off("b")# (ELAN: artikelnummer lesen) - - - Der Wahrheitswert der Bedingung 'Stoptaste gedrückt' wird zunächst auf - 'falsch' gesetzt. - - Der Benutzer wird aufgefordert, eine Artikelnummer einzugeben. Je nach - Einstellung der 'Eingabeart' (vgl. Kapitel 5.3) erfolgt die Eingabe durch Ein - tippen einer Zahl über die Tastatur oder durch Einschieben einer Warenkarte - in das Lesegerät. Eingaben über die Tastatur sind mit <RETURN> abzu - schließen. Akzeptiert werden nur Werte von 1 bis 15, ansonsten erfolgt eine - Warnung, und die Eingabe wird wiederholt. - - Durch Tippen der Tastenfolge <ESC><q> kann dieser Befehl abgebrochen - werden, ohne daß eine Artikelnummer eingelesen wird. In diesem Falle wird - der Wahrheitswert der Bedingung 'Stoptaste gedrückt' auf 'wahr' gesetzt, sonst - bleibt der Wert auf 'falsch'. - - Durch Tippen der Tastenfolge <ESC><h> wird die Ausführung des - gesamten Programms abgebrochen. - - -#on("b")#Artikeldaten eingeben#off("b")# (ELAN: artikeldaten eingeben) - - - Der Befehl setzt voraus, daß zuvor eine Artikelnummer eingelesen wurde, - ansonsten erfolgt eine entsprechende Fehlermeldung. - - Die Angaben zu einem Artikel (Name, Preis, Mindestbestand, Bestand) können - eingegeben bzw. verändert werden. - - Alle Eingaben sind mit <RETURN> oder der Tastenfolge <ESC><q> - abzuschließen. Durch <ESC><q> wird der Wahrheitswert der Bedingung - 'Stoptaste gedrückt' auf 'wahr' gesetzt. - - Nach Abschluß der Eingaben werden die Artikeldaten in der Filial-Verwaltung - gespeichert, worauf auch kurz hingewiesen wird. - - Durch Tippen der Tastenfolge <ESC><h> während der Eingaben wird die - Ausführung des gesamten Programms abgebrochen. - - -#on("b")#Kundennummer lesen#off("b")# (ELAN: kundennummer lesen) - - - Der Wahrheitswert der Bedingung 'Stoptaste gedrückt' wird zunächst auf - 'falsch' gesetzt. - - Der Benutzer wird aufgefordert, eine Kundennummer einzugeben. Je nach - Einstellung der 'Eingabeart' (vgl. Kapitel 5.3) erfolgt die Eingabe durch Ein - tippen einer Zahl über die Tastatur oder durch Einschieben einer Kundenkarte - in das Lesegerät. Eingaben über die Tastatur sind mit <RETURN> abzu - schließen. Akzeptiert werden nur Werte von 129 bis 159, ansonsten erfolgt eine - Warnung, und die Eingabe wird wiederholt. - - Durch Tippen der Tastenfolge <ESC><q> kann dieser Befehl abgebrochen - werden, ohne daß eine Kundennummer eingelesen wird. In diesem Falle wird - der Wahrheitswert der Bedingung 'Stoptaste gedrückt' auf 'wahr' gesetzt, sonst - bleibt der Wert auf 'falsch'. - - Durch Tippen der Tastenfolge <ESC><h> wird die Ausführung des - gesamten Programms abgebrochen. - - -#on("b")#Kundendaten eingeben#off("b")# (ELAN: kundendaten eingeben) - - - Der Befehl setzt voraus, daß zuvor eine Kundennummer eingelesen wurde, - ansonsten erfolgt eine entsprechende Fehlermeldung. - - Die Angaben zu einem Kunden (Name, Vorname, Geschlecht) können einge - geben bzw. verändert werden. - - Alle Eingaben sind mit <RETURN> oder der Tastenfolge <ESC><q> - abzuschließen. Durch <ESC><q> wird der Wahrheitswert der Bedingung - 'Stoptaste gedrückt' auf 'wahr' gesetzt. - - Nach Abschluß der Eingaben werden die Kundendaten sowohl in der Filial- - Verwaltung als auch in der Zentrale gespeichert, worauf auch kurz hingewiesen - wird. - - Durch Tippen der Tastenfolge <ESC><h> während der Eingaben wird die - Ausführung des gesamten Programms abgebrochen. - - -#on("b")#neues Blatt#off("b")# (ELAN: neues blatt) - - - Das Rechnungsfenster auf dem Bildschirm wird gelöscht. - - Für die Ausgabe der nächsten Rechnung auf dem Drucker wird eine neue - Rechnungsdatei bereitgestellt. - - -#on("b")#Rechnungskopf#off("b")# (ELAN: rechnungskopf) - - - Ein Rechnungskopf wird auf dem Bildschirm ausgegeben. Falls zuvor eine - Kundenummer eingelesen worden ist, unter der bereits Kundendaten einge - geben wurden, erscheint der Name des betreffenden Kunden im Rechnungs - kopf. - - Der Rechnungskopf wird für einen eventuellen späteren Ausdruck in die - Rechnungsdatei geschrieben. - - -#on("b")#Artikel kaufen#off("b")# (ELAN: artikel kaufen) - - - Der Befehl setzt voraus, daß zuvor eine Artikelnummer eingelesen worden ist, - ansonsten erfolgt eine entsprechende Fehlermeldung. - - Artikelname und -preis werden auf den Bildschirm und in die Rechnungsdatei - geschrieben. - - Der Kauf wird intern in den entsprechenden Filial-Dateien registriert. - - -#on("b")#Abrechnung#off("b")# (ELAN: abrechnung) - - - Die Preise der gekauften Artikel werden addiert. - - Die Summe wird auf dem Bildschirm angezeigt und in die Rechnungsdatei - geschrieben. - - Der Benutzer wird gefragt, ob die Rechnung ausgedruckt werden soll. - - -#on("b")#Auskunft#off("b")# (ELAN: auskunft) - - - Der Wahrheitswert der Bedingung 'Stoptaste gedrückt' wird zunächst auf - 'falsch' gesetzt. - - Der Benutzer wird aufgefordert, eine Codenummer einzugeben. Je nach Ein - stellung der 'Eingabeart' (vgl. Kapitel 5.3) erfolgt die Eingabe durch Eintippen - einer Zahl über die Tastatur oder durch Einschieben einer Codekarte in das - Lesegerät. Eingaben über die Tastatur sind mit <RETURN> abzuschließen. - Akzeptiert werden nur zulässige Werte, ansonsten erfolgt eine Warnung, und - die Eingabe wird wiederholt. Die Bedeutungen der einzelnen Auskunftscodes - sind in Kapitel 5.4 unter der Menufunktion 'Auskunft einholen' beschrieben. - - Durch Tippen der Tastenfolge <ESC><q> kann der Befehl abgebrochen - werden, ohne daß eine Codenummer eingelesen wird. In diesem Falle wird der - Wahrheitswert der Bedingung 'Stoptaste gedrückt' auf 'wahr' gesetzt, sonst - bleibt der Wert auf 'falsch'. - - Durch Tippen der Tastenfolge <ESC><h> wird die Ausführung des - gesamten Programms abgebrochen. - - -#on("b")#Bildschirm neu#off("b")# (ELAN: bildschirm neu) - - - Der Programm-Eingangsbildschirm wird neu aufgebaut. Der Befehl wird - benötigt, wenn die Fenstereinteilung auf dem Bildschirm wiederhergestellt - werden soll (z.B. nach Ausgabe einer Liste bei dem Befehl 'Auskunft'). - - Der Befehl wird beim Starten eines GRIN-Programms automatisch ausgeführt; - bei ELAN-Programmen wird er automatisch am Anfang eines jeden Programms - eingefügt, wenn das Programm nicht mit diesem Befehl beginnt. - - -Neben diesen Befehlen stehen für ELAN-Programme noch drei weitere zur Verfügung, -die nicht zum GRIN-Befehlssatz gehören: - - nachbestellen, - dezimalwert lesen, - bitmuster lesen. - -Diese Befehle entsprechen in ihrer Wirkung den gleichnamigen Menufunktionen -unter dem Oberbegriff 'Kommandos', die in Kapitel 5.4 beschrieben sind. - - - |