Commodore CBM 2001, CBM 3001 User Manual

commodore -
Bedienungshandbuch
Computer
Dieses Handbuch wurde gescannt, bearbeitet und ins PDF-Format konvertiert von
Rüdiger Schuldes schuldes@itsm.uni-stuttgart.de (c) 2003
Einleitung
Diese Einleitung befaßt sich mit dem grundsätzlichen Kennenlernen Ihres Computers.
Sollten Sie mit dessen Bedienung schon etwas vertraut sein, so dürfte diese Anleitung für Sie kaum etwas Neues bieten. Wir halten es jedoch für unerläßlich, Sie mit der Grundbedienung vertraut zu machen. Meist ist es ja so, daß der Neuling an Kleinigkeiten verzweifelt, die dem Erfahrenen nur ein müdes Lächeln abringen.
Stecken Sie also den Schukostecker in die Steckdose und schalten das Gerät einmal ein. Der Einschalter befindet sich auf der Rückseite des Rechners links unten. Nach kurzer Zeit haben Sie ersten Kontakt; der Rechner meldet sich auf dem Bildschirm mit der Meldung:
# # # COMMODORE BASIC # # # 7167 BYTES FREE READY.
Die Zahl 7167 (oder 15359 bei den Geräten der Serie 3016 bzw. 31743 beim 3032) sagt Ihnen übrigens, wie groß der Schreib-Lese-Speicher Ihres Computers ist.
Die Meldung # # # COMMODORE BASIC# # # sagt Ihnen, in welcher Sprache der Rechner program miert werden kann. Auf die Sprache BASIC kommen wir ausführlich in Kapitel 1 zu sprechen.
Sollte wider Erwarten der Einschaltvorgang nicht korrekt ablaufen, so versuchen Sie bitte folgendes:
1. Drehen Sie den Helligkeitsregler für den Bildschirm entgegen dem Uhrzeigersinn bis zum Anschlag. Sollte die Meldung des Rechners jetzt sichtbar sein, so drehen Sie den Regler wieder soweit zurück, bis die Schrift normal hell sichtbar ist.
2. Schalten Sie den Rechner wieder aus. Ziehen Sie den Netzstecker aus der Steckdose. Überprüfen Sie die Sicherung, die Sie mit einem Schraubenzieher herausdrehen können (die Siche
rung befindet sich direkt neben dem Einschalter). Sollte die Sicherung noch in Ordnung sein, so bleibt Ihnen nichts anderes übrig, als Ihren Fachhändler aufzusuchen.
Nachdem Sie nun den Rechner eingeschaltet haben, wollen wir kurz einmal den Begriff der Dialogfähig keit des Rechners erläutern. Die Dialogfähigkeit des Rechners besagt nichts anderes, als daß:
1. Sowohl eine Eingabemöglichkeit, als auch eine Ausgabemöglichkeit des Rechners in Sicht- und Griff weite des Bedieners sein müssen (bei Ihrem Gerät sind das der Bildschirm und die Tastatur).
2. Daß sowohl der Rechner fragen kann und Sie antworten als auch Sie Fragen oder Aufgaben stellen können und der Rechner antwortet.
3. Der Rechner Ihnen offensichtliche Fehler, die Sie bei der Programmierung gemacht haben, möglichst genau lokalisiert, so daß eine Korrektur leicht und schnell möglich ist.
Alle diese Möglichkeiten bietet Ihnen der Computer. Er kann somit ohne Einschränkungen als dialogfähig bezeichnet werden.
Sehen wir uns einmal die Tastatur genauer an. Grundsätzlich gliedert sich die Tastatur in sieben Unter gruppen:
1. Die alphabetischen Tasten
Drücken Sie einmal leicht auf die Taste Q. Wie zu erwarten, erscheint auf dem Bildschirm an der Stelle, wo sich das blinkende Quadrat gerade noch befand, ein Q und das Quadrat wandert eine Stelle weiter nach rechts (es nennt sich übrigens CURSOR).
Der Computer reagiert natürlich auf alle Buchstaben, Zahlen und Sonderzeichen genauso, wie auf dasQ.
2. Die numerischen Tasten
An sich ist eine Trennung dieser Tasten von den anderen nicht nötig. Da in einem Computer sehr oft Zahlen eingegeben werden, ist es aber sinnvoll, die Zifferntasten zusammenfassen, damit Sie ohne große Handbewegung schnell hintereinander erreichbar sind.
Erstaunen mag Sie als EDV-Neuling wohl, was der Punkt in diesem Block zu suchen hat, während das Komma, bei jeder Zahl mit Nachkommastellen unerläßlich, ganz wo anders angebracht ist.
Doch das ist schnell erklärt.
In den U.S. A., wo auch Ihr Computer herkommt, gibt es kein Dezimalkomma, sondern ein Punkt trennt Vor- und Nachkommastellen. Wenn Sie sich diese Besonderheit schon jetzt einprägen, werden Sie später viele Eingabefehler an Ihrem Rechner umgehen können.
3. Die grafischen Zeichen (Siehe Anhang VIII für die -2-Tastatur)
Bestimmt haben Sie die seltsamen Hieroglyphen auf der Tastatur schon verwundert. Das sind gra fische Zeichen, mit denen man z. B. Tabellen oder einfache Bilder herstellen kann. Um diese Zeichen auf dem Bildschirm darzustellen, machen Sie folgendes:
A) Drücken Sie eine der beiden SHIFT-Tasten (im alphabetischen Tastenblock untere Reihe links und
rechts).
B) Halten Sie diese Taste gedrückt und drücken Sie gleichzeitig beispielsweise die Taste Q. Auf dem
Bildschirm erscheint das zugehörige Sonderzeichen (statt eines Q beispielsweise ein weißer Kreis). Siehe auch 1.2.36.
4. Die CURSOR-Steuertasten
Was der Cursor (sprich Körser) ist, haben wir bereits einmal kurz angesprochen. Wir wollen an dieser Stelle jedoch einmal genauer darauf eingehen.
Prinzipiell hat der Cursor 2 Funktionen:
Erstens teilt der Computer Ihnen dadurch mit, daß er auf eine Eingabe per Tastatur von Ihnen wartet. Zweitens zeigt er Ihnen an, wo auf dem Bildschirm diese Eingabe angezeigt wird. Das durch die Ta
statur gewählte Zeichen erscheint genau an der Stelle, wo sich der Cursor gerade befindet. Nun ist es oftmals nötig, den Cursor zu bewegen, ohne daß ein Zeichen geschrieben wird, oder Sie
haben sich verschrieben und wollen ein Zeichen nachträglich einfügen, ändern oder löschen. Dazu dienen die Cursor-Steuertasten.
Diese befinden sich in der oberen Reihe des numerischen Tastaturblocks.
Sehen wir uns ein Beispiel an: Drücken Sie gleichzeitig
SHIFT
CLR
HOME
Der gesamte Bildschirminhalt wird gelöscht und der Cursor steht in der oberen Zeile links.
Geben Sie nun einen beliebigen Text ein, z. B.: DER cbm IST EIN COMPUTER
Nach jedem Buchstaben bewegt sich der Cursor eine Stelle weiter nach rechts und steht zum Schluß hinter dem R von Computer.
Wir wollen nun den Text ändern, daß er zum Schluß heißt:
DER cbm - MEIN COMPUTER
Zuerst löschen wir das IST und ersetzen es durch -. Drücken Sie dazu die Tasten
SHIFT
CRSR
—»
Wie Sie sehen, bewegt sich der Cursor um eine Stelle nach links. Er steht jetzt auf dem R von Com puter. Wiederholen Sie den Vorgang, bis der Cursor auf dem T von IST steht.
Nun drücken Sie zweimal die Taste
INST
DEL
Nach jedem Tastendruck verschwindet das sich jeweils links neben dem Cursor befindliche Zei chen und der Rest der Zeile wird, einschließlich dem Cursor, um eine Stelle nach links nachgeführt.
Geben Sie jetzt einfach das Zeichen - ein; es überschreibt das vom IST übrig gebliebene T. Mit der Taste
CRSR (aber ohne SHIFT
Mit den Tasten
) bewegen Sie jetzt den Cursor auf das E von EIN.
+
machen Sie nun Platz für das noch fehlende M. Dabei wird der Rest der Zeile ab dem Cursor um eine Stelle nach rechts verschoben. Zum Schluß gehen Sie mit der Taste
wieder an das Ende des Satzes.
In diesem Beispiel haben wir den Cursor in einer Zeile hin- und her bewegt. Genauso leicht ist es aber
auch möglich, in die darunter liegende Zeile
Î
CRSR
T
oder darüber liegende Zeile
SHIFT +
î
CRSR
1
zu springen. Zwei Besonderheiten an dieser Stelle noch zu dem Bildschirm: wenn beim Einfügen mit den Tasten
SHIFT
der Rest der Eingabe das Ende der Zeile erreicht hat, so wird er in die nächste tiefere Zeile schreibrich tig übertragen. Über mehr als eine Zeile ist das aber nicht möglich. Das Einfügen von Zeichen wird dann blockiert. Das geschieht aus folgendem Grund:
In seinem Speicher behandelt der Rechner zwei Bildschirmzeilen â 40 Zeichen wie eine Zeile â 80 Zei chen. Mehr als 80 Zeichen können also nicht gleichzeitig behandelt werden. Die zweite Besonderheit stellen Sie fest, wenn Sie mit dem Cursor in die unterste Zeile »fahren«. An sich müßte der Cursor jetzt
bei weiteren Versuchen, noch tiefer zu fahren, stehen bleiben. Z. B. am oberen Rand, wenn Sie noch
höher fahren wollen. Das geschieht zwar auch, der Bildschirminhalt wird um eine Zeile nach oben ge
schoben und die oberste Zeile des Bildes verschwindet. Man nennt das »der Bildschirm rollt« oder
auch
ROLL MODE
im Gegensatz zum stehenden Bild, das man
BLOCK MODE
nennt.
Die verschwundene Zeile ist endgültig gelöscht, da der Roll Mode nur in einer Richtung arbeitet und
zwar nur von unten nach oben.
Sie selber haben gesehen, welche Vorteile die Cursor-Steuertasten haben. Ihr Gebrauch wird Ihnen
schnell zur Gewohnheit werden.
INST
DEL
3
Daher noch einmal eine Zusammenfassung
CURSOR RIGHT (Cursor nach rechts)
: Der Cursor bewegt sich eine Stelle nach rechts;
SHIFT CRSR
Î
CRSR
1
SHIFT
INST
DEL
SHIFT
CLR
HOME
Î
CRSR
1
INST
DEL
CURSOR LEFT (Cursor nach links) Der Cursor bewegt sich eine Stelle nach links;
CURSOR DOWN (Cursor nach unten) Der Cursor bewegt sich um eine Zeile nach unten;
CURSOR UP (Cursor nach oben) Der Cursor bewegt sich um eine Zeile nach oben;
DELETE (Zeichen löschen) Das links von dem Cursor befindliche Zeichen wird gelöscht. Gleichzeitig wird der
gesamte rechte Teil der Zeile zusammen mit dem Cursor um ein Zeichen nach links versetzt.
INSERT (Zeichen einfügen)
Ab der Position des Cursors wird der rechte Teil der Zeile um eine Stelle nach rechts verschoben. Der Cursor bleibt an der gleichen Stelle stehen, wo sich nun ein Leer zeichen befindet.
HOME (Cursor in Grundstellung) Der Cursor wird in seine Grundstellung nach links oben versetzt.
SHIFT
CLR
HOME
CLEAR (löschen des Bildschirms) Zusätzlich zu der Home-Funktion wird der gesamte Bildschirminhalt gelöscht.
5. Die RVS-Taste
(Reverse = umgekehrt)
RVS
Mit dieser Taste können Sie alle Zeichen auf dem Bildschirm dunkel auf hellem Untergrund stellen. Man nennt das
INVERSE VIDEO (umgekehrter Bildschirm) Diese Darsteilungsart wird bevorzugt, um besonders wichtige Meldungen auf dem Bildschirm hervor
zuheben. Die RVS-Taste hat drei Bedeutungen:
OFF RVS
SHIFT
2.
OFF
RVS
OFF
+
RVS
Nach Drücken dieser Taste erscheinen alle folgenden Zeichen invertiert, bis die Funktion ausgeschaltet, oder die Taste »RETURN« gedrückt wird.
Nach Drücken dieser Taste wird inverse video wieder abgeschaltet und
alle weiteren Zeichen erscheinen wieder normal.
Sollten Sie einmal Informationen auf dem Bildschirm nicht lesen kön nen, weil im Roll-Mode die Zeilen zu schnell »vorbeilaufen«, so kann durch Drücken der Taste »OFF RVS« die Ausgabe so weit verlangsamt werden, daß ein Lesen in Ruhe erfolgen kann.
4
6. Die RETURN-Taste
Diese Taste (Alpha -Tastenblock, 2. + 3. Zeile rechts, rot) beendet eine Eingabe in den Rechner (nicht zu verwechseln mit dem Bildschirm, der ist nur ein Teil des Rechners). Ihr Computer kann nämlich nicht ahnen, wann die Information (man sagt in Fachkreisen dazu DATEN; auch wir werden uns jetzt daran halten) vollständig sind. Wenn Sie z. B. eine 1 eingegeben haben, weiß der Rechner nicht, ob vielleicht noch eine 6 folgt. Dazu beenden Sie alle Dateneingaben mit der Taste RETURN:
Z.B.:
1 RETURN
(Eingabe der Zahl 1).
1
6
RETURN
(Eingabe der Zahl 16).
7. Die RUN/STOP-Taste
Auch die RUN/STOP-Taste hat zwei Bedeutungen. Zum einen können Sie mit dieser Taste ein laufen des Programm an jeder beliebigen Stelle abbrechen. Das ist dann sinnvoll, wenn Sie in einem laufenden
Programm gewisse Daten überprüfen wollen, die nicht von selber ausgegeben werden. Beispiele dafür
geben wir Ihnen später.
Zum anderen können Sie auf einer Kassette gespeichertes Programm mit
SHIFT
RUN
STOP
in den Speicher des Computers einladen und automatisch starten.
1. DER COMPUTER UND SEINE SPRACHE
BASIC, die Sprache in der Ihr Computer arbeitet, ist eine leicht erlernbare, zum Teil aus englischen
Worten, zum Teil aus mathematischen Zeichen bestehende Folge von Befehlen. Obwohl es eine der
leichtesten Programmiersprachen ist, ist sie ungeheuer vielseitig und flexibel. Ursprünglich an der Dartmouth University entwickelt um Studenten die Möglichkeit zu geben, schnell und leicht Pro bleme an einem Computer zu bearbeiten, breitete sich diese Sprache sehr schnell in der ganzen Welt aus. Heute existiert BASIC in unzähligen Versionen auf fast jedem größeren Computer.
Bei unserem COMMODORE-BASIC stand auch das DARTMOUTH-BASIC Pate; gleichzeitig ist das COMMODORE-BASIC größer und leistungsfähiger geworden.
1.1. Die Komponenten der BASIC-Programmiersprache
Bevor wir uns mit der eigentlichen Sprache BASIC befassen, müssen wir uns zuvor über einige Schreibregeln einigen. Nachfolgend eine Liste der Konventionen und Ausdrücke, die wir in diesem Buch zu unserer und Ihrer Erleichterung einführen:
Eckige Klammern [ ] - Ausdrücke in eckigen Klammern können, müssen aber nicht angegeben
werden.
Zeichen - Ein Buchstabe, eine Zahl oder ein beliebiges Sonderzeichen.
Konstante - Eine Zahl innerhalb der Rechengrenzen Ihres Computers (siehe 1.1.1 ).
Formel - Eine Konstante, eine Variable oder ein Ausdruck, bestehend aus Konstanten
und /oder Variabaien (z. B. 8 + 3* %).
5
Buchstabe Zeilennummer Text Variable
Integer
Byte Geschweifte Klammer O
Ein alphabetisches Zeichen von A - Z. Eine ganze Zahl von 0 bis 63999. Eine Folge von 0 bis 255 beliebigen Zeichen.
Siehe 1.1.2. Eine ganzzahlige Konstante oder Variable im Bereich von - 32768 bis 32767. Eine ganzzahlige Konstante oder Variable im Bereich von 0 bis 255. Genau einer der in geschweiften Klammern angegebenen Ausdrücke muß
benutzt werden.
1.1.1 Die Konstanten
Die Grundform einer Konstanten ist eine Dezimalzahl zwischen 1.7*1038 und 2.93*1 CT39.
Bis zu 9 Stellen einer Zahl können gespeichert werden und es kann damit gerechnet werden.
Beispiele für Konstanten: 25,15.75, -87, 0, 3255, 45E7.14.2E-6,13.12345678
In zwei der Konstanten tauchte der Buchstabe E auf. Der Buchstabe E besagt, daß die nach
folgenden Zahlen den Exponenten zur Basis 10 darstellen.
1.5E3 bedeutet 1.5*103=1.5*10*10*10 = 1.5*1000 = 1500
1.27E-2 bedeutet 1.27*10“2 = 1.27/10/10 = 1.27/100 = 0.0127. Das Vorzeichen wird nur bei negativen Zahlen geschrieben.
Konstanten werden verwendet, um feste Werte zu fixieren.
Da der Computer nicht nur numerische Werte verarbeiten kann, sondern auch Textverarbeitung
zuläßt, gibt es genauso wie numerische Konstanten auch Textkonstanten:
”A”, ’’PETER IST LIEB”, ’’ICH BIN EIN CBM”, ”125 LAMPEN”.
Die Textkonstanten erkennt man daran, daß sie in Anführungszeichen eingebettet sind. Die Anfüh
rungszeichen selber gehören jedoch nicht zur eigentlichen Textkonstante.
1.1.2. Die Variablen
Eine Variable ist ein Symbol, dessen Wert sich ändern kann. Der Name einer Variablen besteht aus
entweder einem Buchstaben z. B.: A, G, Z oder einem Buchstaben und einer Zahl z. B.: A1, F6,V9 oder zwei Buchstaben z. B.: AX, PE, UT, UX plus (wahlweise) der Kennzeichnung % oder $.
Eine Variable kann aus mehr als zwei Zeichen bestehen, es werden aber nicht mehr als zwei Zei chen abgefragt. Wenn Sie zum Beispiel zwei Variablen HANS und HABEL nennen, so werden diese wie eine Variable behandelt, da beide mit HA anfangen.
Die Variable kann innerhalb eines BASIC-Programms verschiedene Funktionen annehmen:
- Variablen repräsentieren numerische Werte z. B.: A=10 , A5=-5.6E-3 , XY=3.14
- Variablen können in den Rechner eingegeben werden z. B. 10 INPUT A,B,C1,XY
~T~ P- I
___________________________________________
____________________________________________________ Zeilennummer
- Variablen können gleich gesetzt werden z. B. A = B, A5= XY, XY = B (A wird gleich B gesetzt, usw.)
_____________________________
Variablenliste
Eingabebefehl
Variablen können ausgedruckt werden
Z. B. 20 PRINT A. B. C1.XY
6
Variablenliste Ausgabebefehl Zeilennummer
Es gibt drei Arten von Variablen:
1. Fließkommavariablen
Diese Variablen können jeden beliebigen Wert innerhalb der Rechengrenzen des Computers an nehmen.
Jede Variable, deren Name das Kennzeichen % oder$ nicht enthält, ist eine Fließkommavariable.
Beispiel: A = 7
B8 = 1.5E3 ZY = 9E9 X1 =-0.52187
2. Festkommavariablen
Diese Variablen können als Wert ganze Zahlen zwischen (einschließlich) -32767 und +32767 an nehmen. Sie haben am Ende des Namens das Zeichen % stehen.
Beispiel: A% = 7
L1 % = 4528 X0% =0
3. Stringvariablen (Strings, Textvariablen)
Diese Variablen haben als Wert einen beliebigen Text aus 0 bis 255 Zeichen. Sie werden mit ange hängtem $ gekennzeichnet.
Beispiel: A$ = ’’TEXT”
B$ = ”55” C$ = ’’DIES IST EIN STRING”
X1 $ = ’’COMPUTER 3001 ”
N$ = ” ” (Bemerkung: dieser String besteht aus keinem Zeichen.)
Alle drei Variablenarten können noch indiziert werden. Man spricht dann von dimensionierten Variablen, Matrizen, Feldern oder Arrays. Siehe 1.2.18.
1.1.3. Arithmetische Operationen Zu den arithmetischen Operationen gehören zunächst einmal die vier Grundrechenarten, die auf dem Computer eine etwas andere Darstellungsform besitzen als Sie es vielleicht von anderen
Geräten oder Beschreibungen her kennen.
Nachfolgend die Darstellung dieser Zeichen:
Addition + Subraktion ­Multiplikation *
Division /
Darüberhinaus existieren eine Vielzahl von mathematischen Funktionen, die standardmäßig vor handen sind.
Betrachten wir diese Funktionen im einzelnen.
• SGN Die SIGNUM (Vorzeichen)-Funktion. Der Funktionswert ist:
für negative Zahlen -1 für positive Zahlen +1 für Null 0
Syntax: SGN ({Variable, Konstante, arithm. Ausdruck }) Beispiel: A = SGN (B)
PRINT SGN (-45) PRINT SGN (A + 7T *2)
Den Wert in der Klammer bezeichnet man als Argument.
Anstelle von PRINT kann auch das Fragezeichen gesetzt werden.
7
Anwendung:
Auf sehr einfache Weise bestimmen, ob eine Zahl negativ, positiv oder 0 ist.
• INT Die INTEGER-Funktion Sie bildet bei positiven Zahlen die kleinste ganze Zahl, d.h. alle Nachkommastellen werden zu 0 gesetzt.
Bei negativen Zahlen bildet sie die kleinste negative Zahl, d. h. alle Nachkommastellen werden bis zur nächsten ganzen Zahl abgerundet.
Syntax: INT ({Variable, Konstante arithm. Ausdruck })
Beispiel: A = INT (B)
? INT (B) ? INT (-2.5) ?INT(X-Y)
Anwendungsbeispiel:
Auf- oder Abrunden eines Ergebnisses, wenn nur eine ganzzahlige Größe erlaubt ist, z. B. bei der
rechnerischen Ermittlung einer Zahl von Schrauben in einem Behälter.
• ABS Die ABSOLUTWERT-Funktion
Sie schneidet das Vorzeichen ab und bildet nur den absoluten Wert.
Syntax: ABS ({Variable, Konstante, arithm. Ausdruck })
Beispiel: A = ABS (B)
? ABS (-145)
Anwendungsbeispiel:
Berechnung einer Wurzel aus einer unbekannten Zahl. Da es mathematisch nicht möglich ist, aus
einer negativen Zahl eine Wurzel zu ziehen, kann man zuvor den Absolutwert bilden.
• SQR Die SQUARE ROOT (Quadratwurzel)-Funktion
Sie bildet die Quadratwurzel aus dem Argument.
Syntax: SQR ({Variable, Konstante, arithm. Ausdruck })
Beispiel: A = SQR (B) ? SQR (16)
Anwendung:
Im Bereich der Mathematik.
• SIN Die SINUS-Funktion Sie berechnet den Sinuswert des Arguments im Bogenmaß. (Die mathematische Be deutung der trigonometrischen Funktionen wird als bekannt vorausgesetzt.)
Syntax: SIN ({Variable, Konstante, arithm. Ausdruck })
Beispiel: A = SIN (B)
? SIN (30)
Anwendung:
Im Bereich der Mathematik. Ist das Argument in GRAD gegeben, muß es durch eine Umrechnung modifiziert werden.
Beispiel: A = SIN (30 * 7r /180)
Ist das Argument in NEUGRAD gegeben, so lautet die Umrechnung:
Beispiel: A = SIN (30 * tt / 200)
8
• COS Die COSINUS-Funktion Sie wird genauso behandelt wie die SIN-Funktion.
• TAN DieTANGENS-Funktion Sie wird behandelt wie die SIN-Funktion.
Die COTANGENS-Funktion existiert bei Ihrem Rechner nicht, da sie sehr einfach durch dieTAN­Funktion gebildet werden kann. Die Beziehung lautet:
COT (X) =
TAh
S (X)
Beispiel: Y = 1 / TAN (X)
Von den Umkehrfunktionen zu den bisher behandelten trigonometrischen Funktionen existiert
lediglich die
• ATN ARCUSTANGENS-Funktion. Sie bildet die Umkehr-Funktion des TANGENS.
Syntax: ATN ({Variable, Konstante, arithm. Ausdruck })
Beispiel: Y = ATN (X)
Anwendung:
Im Bereich der Mathematik.
Die Umkehrfunktionen zum SIN und COS lassen sich leicht mit dem ATN berechnen. Die Beziehungen lauten:
ARC SIN (X) = ATN (X / SQR (1 - X f 2))
ARC COS (X) = ATN (SQR (1 - X | 2) / X)
• LOG der NATÜRLICHE LOGARITHMUS ermittelt die Logarithmen zur BASIS e = 2,7182818
Syntax: LOG ({Variable, Konstante, arithm. Ausdruck }) Beispiel: Y = LOG (X)
• EXP der EXPONENT zur natürlichen Basis e ermittelt den Wert der Funktion y = e
Syntax: EXP ({Variable, Konstante, arithm. Ausdruck }) Beispiel: Y = EXP (X)
0 I die Potenzierung zu einer beliebigen Basis mit beliebigen Exponenten.
Syntax: {Variable, Konstante, arithm. Ausdruck} { {Variable, Konstante, arithm. Ausdruck}
Beispiel: Y = A { X
? 2 } 3
• RND die RANDOMIZE (Zufalls)-Funktion Sie bildet Pseudo-Zufallszahlen zwischen 0 und 1.
Syntax: RND ({ Variable, Konstante, arithm. Ausdruck })
Beispiel: ? RND (X)
a) X negativ
RND mit negativem Argument ergibt immer den gleichen Funktionswert. Dies kann beispielsweise für Fehlersuche oder während der Programmentwicklung nützlich sein.
b) X = 0
ergibt einen Wert, der nur von der Zeit seit dem Einschalten des Computers abhängt.
c) X positiv
liefert von der Zeit und von X abhängige Zufallsvariablen.
x
9
Beispiel: Es soll ein Würfel simuliert werden.
10 W = RND(-TI)
20 W = INT (6 * RND (1) + 1) 30? W
is die Zahl PI. Sie ist fest gespeichert, tt = 3.14159265
1.1.4 OPERATOREN
zu den Operatoren zählen: a) die Vergleichsoperatoren
b) die logischen Operatoren
Vergleichsoperatoren
Sie dienen dazu, Zahlenwerte zu vergleichen. Dies bildet einen sehr wichtigen Bestandteil bei der Behandlung und Untersuchung von Zahlen.
Wenn z. B. aus einer Zahlenfolge alle Zahlen ermittelt werden sollen, die einen bestimmten Grenz wert überschreiten, wird ein Vergleichsoperator angewendet.
Die Frage lautet:
- Welcher Wert ist größer als der Grenzwert, bzw.
- Welcher Wert ist kleiner oder gleich dem Grenzwert.
Die mathematische Darstellungsform dieser Vergleichsoperatoren zeigt nachfolgende Tabelle:
BASIC SCHREIBWEISE BEDEUTUNG
< kleiner als > größer als
= < gleich oder kleiner als = > gleich oder größer als
<> oder ><
=
Einige Beispiele mögen die Anwendung und Bedeutung der Vergleichsoperatoren hervorheben. Dabei benutzen wir schon jetzt die im Rechner gebräuchliche Schreibweise.
IF A < B THEN ? A IF
A > B THEN ? B
IF
A < > B (oder: IF A >< B) IF A >= B IF A <= B
IF
A = B THEN ? ”A =
nicht gleich Gleichheit
wenn A kleiner als B, dann drucke A
Wenn A größer gleich B, dann ...
B” wenn A gleich B, dann drucke: A = B
LOGISCHE OPERATOREN
Sie sind der Booleschen Algebra entlehnt und finden unter anderem in der elektronischen Digital technik (also die Technik, in der der Rechner arbeitet) Anwendung.
In den Programmiersprachen haben sie ebenfalls eine sehr große Bedeutung. Man kann mit Ihnen
komplizierte Abfragen aufbauen. Der Rechner kennt drei logische Operatoren, nämlich AND (und -Bedingung)
OR (oder-Bedingung)
NOT (nicht- Bedingung)
10
Diese Operatoren können angewendet werden auf beliebige Variablen.
1. AND, OR und NOT bei Festkommavariablen:
Bei ganzen Zahlen zwischen — 32767 und 32767 arbeiten diese Funktionen bitweise in der folgen
den Art:
X
0 0 0 0 1
1 1 1 1
Alle Festkommazahlen (Integerzahlen) sind im Computer binär verschlüsselt. Sie bestehen aus 16 Bits, die jeweils den Zustand 0 oderl annehmen können.
X X X X X
14
15
I
____
Daraus folgt, daß 216 = 65536 verschiedene Integerzahlen darstellbar sind. Da wir aber bei ganzen Zahlen auch negative Zahlen darstellen wollen, wird Bit 15 als Vorzeichen
benutzt. Wenn dieses Bit Null ist, so ist die Zahl positiv, ist Bit 15 gleich Eins, so ist die Zahl negativ. Es bleiben damit 215 -1 = 32767 verschiedene Möglichkeiten, positiv oder negativ.
Positive Zahlen sind in der Weise codiert, daß Bit n der Wert 2n zugewiesen wird, wenn dieses Bit gleich 1 ist. Ansonsten hat Bit n den Wert 0. Die Werte aller Bits werden addiert, um die Zahl zu er halten.
Die Bitdarstellung einer negativen Zahl erhält man folgendermaßen: Man bildet die entsprechende positive Zahl in Binärdarstellung invertiert dann alle Bits und addiert 1.
Y XANDY
X OR Y NOT X
0 1
0 1
0 0 1
1
X X X X
12 11
13
Byte 2 Byte 1
10
9 8
_____
I
X X X X X
7
6 5
I
4
1 0 0
3 2 1
X X
_____
0
I
Beispiel:
Integer
- 1
- 2
- 100 1111 1111
- 119 1111 1111
- 127 1111
AND, OR und NOT bilden aus den Argumenten die neuen Werte durch bitweises Vorgehen ent
sprechend der Wahrheitstabelle.
1111 1111 1111 1111
Beispiel: ? 5000 AND -127
? 5000 OR -127 ? NOT 5000
wegen
00010011 10001000 ( 5000)
11111111 10000001 (-127)
00010011 10000000
11111111 10001001 11101100 01110111
1111
Binär
1111 1111 1111
1001 1000 1001 1000 0001
ergibt 4992 ergibt- 119 ergibt -5001
5000 AND -127 5000 OR -127 NOT 5000
1110 1100
11
2. „Wahr“ und „Falsch“
Jeder Aussage wird vom Computer ein Wert zugeordnet, und zwar der Wert -1 (alle Bits = 1), wenn
die Aussage trifft, und der Wert 0 (alle Bits = 0), wenn die Aussage nicht zutrifft.
Bit 15
Bit 14
13
12 4096 11 10
Beispiel:
Integer
10000
32767
Wert, wenn Bit = 1
negativ
16384
8192 0
2048 1024 0
9
8
7 128
6
5 4 3
512 0 256
64 0 32 0 16
2 1 0
0
0000
1 0000
8
4 0
2 1 0
0000 0000
Wert, wenn Bit = 0
Binär
100 0000 0000 0110
1000
5000
0000
0010
0111
0001
0011 0111
1111
0011
positiv
0 0
0
0 0
0 0
0
0000 0000 0000
0001
0100 1110 0001
1000
0000
1111 1111
1000
1000
Beispiel: A$ = "AMEN” : ? A$ = ’’AMEN” : ? A$ = ’’AMENDE”
Hier wird der Variable A$ der String AMEN zugeordnet, dann soll der „Wert“ zweier Aussagen gedruckt werden. Da die erste Aussage „wahr“ und die zweite Aussage „falsch“ ist, erhält man als Antwort: -1 und0.
Beispiel: ? A = NOTB
? X > Y ? X$ = A$ + ”X”
3
usw.
3. AND, OR und NOT bei Aussagen
Die AND-Funktion ist dann wahr, wenn alle Einzelbedingungen wahr sind.
Beispiel: IF A = 1 AND B = 2 AND C = 3 THEN PRINT ’’FERTIG”
Der Computer wird das Wort FERTIG nur dann ausgeben, wenn die Variablen A, B und C die Werte 1, 2 bzw. 3 haben.
Beispiel: IF A$ = ”J” THEN ? ”JA”
Die OR-Funktion ist dann wahr, wenn mindestens eine der Einzelbedingungen wahr ist.
Beispiel: IF A$ = ”J” OR A$ = ”Y” THEN ? ”JA”
Der Computer wird nur dann JA ausgeben, wenn A$ vorher den String ”J” oder den String ”Y” zugewiesen erhielt.
12
Die NOT Funktion kann nicht auf Strings angewendet werden, sondern nur auf Festkomma
variabien, ist das Argument eine Dezimalzahl, so werden die Nachkommastellen nicht beachtet.
Liegt das Argument nicht innerhalb der Grenzen für eine Integerzahl, so erhält man eine ent sprechende Fehlermeldung (? ILLEGAL QUANTITY ERROR).
Beispiel: A = - 3 : B = -3.54 : ? NOTA, NOTB
ergibt: 2 2 A = - 5 : ? NOTA, NOT NOTA ergibt: 4 - 5 A = 123456 : ? NOTA ergibt: ? ILLEGAL QUANTITY ERROR (Argument zu groß)
BEISPIELE FÜR BOOLESCHE OPERATIONEN
63 AND 16 = 16 Da die binäre Schreibform von 63
111111, und von 16 10000 ist,
ergibt sich nach der AND-Verknüpfung
10000 oder 16.
15 AND 14 = 14 15 =
14 =
Resultat
-1 AND 8 = 8
-1 = 8 =
Resultat
10 OR 10 = 10
10 = 10 =
Resultat
-1 OR -2 = -1
-1 = 1111111111111111
-2 =
Resultat
NOT 0= -1
0 =
Komplement davon 1111111111111111 = —1
1111 1110
1110 =14
1111111111111111 0000000000001000
0000000000001000 = 8 1010
1010 1010 = 10
1111111111111110 1111111111111111 = -1
0000000000000000
1.1.5 PRIORITÄTEN bei Formeln
Da in der Rechnerschreibweise Formeln und Anweisungen in einer Zeile geschrieben werden, muß der Rechner ein Schema besitzen, diese Formeln der Reihe nach abzuarbeiten.
Diese PRIORITÄT zur Abarbeitung mathematischer Formeln kann man sehr einfach darstellen. Oberste Priorität haben immer die mathematischen Operatoren, gefolgt von den Vergleichs operatoren und den logischen Operatoren.
Im einzelnen läßt sich das wie folgt darstellen:
13
Mathem. Operatoren Höchste Priorität
Funktionen Î
*/
+ -
VERGLEICHSOPERATOREN
<> (oder ><) > < > = < =
LOGISCHE OPERATOREN
NOT AND OR Niedrigste Priorität
Beispiel: ? 2 j 3 + 6 ergibt 14, weil 2 | 3 zuerst berechnet wird.
1.1.6 Besonderheiten des Gleichheitszeichens
Das Gleichheitszeichen hat in der EDV-Terminologie eine von der Algebra abweichende Bedeutung.
Es bedeutet:
„Ist der Wert von“
und ist nicht zu verwechseln mit der algebraischen Bedeutung:
„Ist gleich“
Die Rechenanweisung
X = X + 1
wäre in der Algebra falsch, da sie auf den Widerspruch 0 = 1 führt.
In der Programmiersprache BASIC ist diese Anweisung jedoch korrekt, sie besagt nämlich:
X „ist der Wert von“ alter Wert von X plus 1
oder
X = X * B X „ist der Wert von“ alter Wert von X mal dem Wert von B.
1.1.7 MATHEMATISCHE FORMELN ALS BEISPIEL FÜR RECHENANWEISUNGEN
Mathematische Formeln werden in BASIC etwas anders geschrieben als in der herkömmlichen
Schreibweise.
Den besten Vergleich erhält man, wenn man diese unterschiedlichen Schreibweisen anhand von Beispielen einander gegenüber stellt.
ALGEBRAISCH
a + b c + d
a + b
c
a • b
c
a b c
BASIC
(A + B) / (C + D)
(A + B) / C
A * B / C
A/B/C
14
a b c
A / (B / C)
a
bc
(ab)N C
a
+ i
b
ba +1
5v^3
1
vV
Die Rechenanweisung wird nun gebildet durch das Gleichheitszeichen, auf dessen Besonderheit bereits hingewiesen wurde.
Die Darstellung einer Rechenanweisung erfolgt genauso wie in der Algebra. z.B. X = A + B + C
-----------------------
-----------------------------------------------Eine Variable, der das
Diese Darstellungsform muß immer eingehalten werden und darf nicht verändert werden. So ist z. B. vorgeschrieben, daß links vom Gleichheitszeichen immer eine Variable stehen muß, während rechts entweder eine Variable oder eine mathematische Formel stehen muß. Es darf links kein mathematischer Ausdruck stehen.
A / (B * C) (A * B) î N * C
B t (A + 1) B f A + 1
A f 0.6 [| = 0.6]
A t (—0.5) [|=0.5]
mathem. Formel
Rechenergebnis zugewiesen wird.
1.1.8 Der Aufbau eines Programms in BASIC
Um ein Programm in BASIC zu erstellen, benutzt man die nachfolgend beschriebenen BASIC­Anweisungen.
Auch hierbei muß man sich an eine bestimmte Ordnung halten, ähnlich wie bei den Rechen anweisungen.
Eine BASIC-Programmzeile besteht immer aus einer bestimmten Zeilennummer, die man auch als Adresse bezeichnen könnte, der BASIC-Anweisung selbst, sowie (sofern vorhanden) der Variablenliste. Die Programmzeile kann maximal 80 Zeichen lang werden.
Eine einfache Anweisung, nämlich die Werte von 5 Variablen auszudrucken, sieht recht übersicht lich aus.
10 PRINT A, B, C, D, E
-------------------
---------------------------------------------
--------------------------------------------------------------Zeilennummer
Die Zeilennummer ist sozusagen der Fingerabdruck der BASIC-Anweisung. Sie gibt es nur einmal und ist daher unverwechselbar. Anhand dieser Zeilennummer finden wir die Anweisung immer wieder.
Sie ist immer ganzzahlig, in aufsteigender Reihenfolge und kann von
0 bis 63999
definiert sein.
Variablenliste
BASIC-Anweisung (Befehlswort)
15
Die Anweisung selbst sagt aus, was mit der nachfolgenden Variablenliste, die im Übrigen aus verschiedenen Informationen bestehen kann, passieren soll.
Möglich sind Texte, Konstanten und Variablen. Das normale Standard-BASIC sieht vor, daß mit diesen Informationen eine Programmzeile be
endet ist. Eine neue Zeile sollte beginnen. Bei Ihrem Computer ist es jedoch möglich, mehrere BASIC-Anweisungen getrennt durch einen
Doppelpunkt, in eine Zeile zu schreiben. Maximal kann diese Zeile 80 Zeichen aufnehmen. Bedingt durch die Begrenzung von 40 Zeichen pro Zeile auf dem Bildschirm, bildet sich der Rechner automatisch eine Doppelzeile.
Beispiel: 10 PRINT A, B, C, D, E: PRINT Y: GOTO 100
1.2.1 Der REM Befehl
Wichtig ohne etwas zu tun ... Sobald die Probleme, die Sie mit Ihrem Rechner lösen, komplexer werden, wird Ihr Programm
natürlich länger und damit meist unübersichtlicher. Ein gutes Hilfsmittel, um ein Programm gut überschaubar zu machen, ist der REMARK-Befehl:
n REM TEXT
Die REM-Anweisung ist eine Mitteilung an den Rechner, die nachfolgenden Ausführungen,
Anweisungen oder Bemerkungen beim Rechenvorgang nicht zu berücksichtigen. Sie hat auf den
Programmablauf keinen Einfluß, sondern wird nur beim Auflisten des Programms ausgegeben, um dem Programmierer die Arbeit zu erleichtern. Zu beachten ist, daß die REM-Anweisung Speicherplatz benötigt und der nachfolgende Text nicht länger ist, als es die Programmzeile erlaubt (insgesamt 80 Zeichen).
Wird REM gemeinsam mit anderen Befehlen in einer Zeile verwendet, so muß REM der letzte
Befehl der Zeile sein, da Befehle nach REM nicht ausgeführt werden.
n = Zeilennummer des Befehls
Text - beliebige Informationen
Bei- 100 REM Beginn des Unterprogramms
spiele: 5810 REM Schachprogramm
12 PRINT A: REM ERGEBNIS
1.2.2 Der END Befehl
Jetzt hört’s auf... Auch wenn das Programmieren noch soviel Spaß macht, einmal ist jedes Programm zu Ende.
Um das logische Ende des Programms zu kennzeichnen, benutzen wir den Befehl:
n END n = Zeilennummer des Befehls
Der Befehl END kann mehrmals in einem Programm benutzt werden, was vor allem bei Programm
verzweigungen sinnvoll sein kann. Dieser Befehl bewirkt das Anhalten des Programms, ohne
irgendwelche Daten zu verändern. Das Programm kann nach dem END durch den Befehl CONT (siehe 1.3.2) fortgesetzt werden.
Beispiel: 10 END
1.2.3 Der STOP Befehl
Das Programm kann verschnaufen ... Es soll ja Vorkommen, daß ein Programm nicht gleich so arbeitet wie sein Schöpfer gern hätte.
Dann sind oft einige Testläufe nötig. Bei diesen Tests kann man den Befehl
n STOP
n = Zeilennummer des Befehls
16
benutzen um das Programm anzuhalten und den Wert einiger Variablen zu erfragen. Der STOP-
Befehl unterscheidet sich vom END-Befehl dadurch, daß beim Beenden des Programms die
Meldung: BREAK IN ... (Zeilennummer) ausgegeben wird.
Auch nach dieser Unterbrechung kann das Programm mit CONT (siehe 1.3.2) fortgesetzt werden.
Beispiel: 120 STOP
1.2.4 Der LET Befehl
Man kann ihn auch vergessen ...
Bei Ihrem Rechner ist es genauso wie bei uns Menschen, seine Sprache ist älter als er. Bei älteren Rechnertypen war der Befehl
n LET Zuweisung
nötig um Werte einer Variablen zuzuordnen. Unseren Rechner stört diese Anweisung nicht, sie ist aber auch nicht nötig und man sollte sie möglichst fortlassen, da sie 1 Byte unseres Speicher platzes belegt.
n = Zeilennummer des Befehls
Beispiel: 130LETA = 10*B
besser 130A = 10*B
1.2.5 Der PRINT Befehl
So unterhalte ich mich ... Soll der Rechner seinen Benutzer während des Programmlaufs ansprechen, ihm Daten angeben
oder einen guten Morgen wünschen, benutzen wir den Befehl:
n { PRINT / ? } {Text / Variablenliste }
n = Zeilennummer des Befehls
Der PRINT-Befehl bewirkt das Ausgehen einer nachfolgenenden Text- und/oder Variablenliste.
Das Fragezeichen ist gleichbedeutend mit dem Wort PRINT und wird vom Rechner beim Listen des Programms durch PRINT ersetzt. Auszugebender Text muß in Anführungszeichen gesetzt werden.
Bei- 110 PRINT ’’LISTE-NR.”, A ; D $ spiele: 20 ? ’’PROGRAMMANFANG”, C $
Nach einem PRINT-Befehl erfolgt ein Wagenrücklauf und ein Zeilenvorschub, so daß jeder PRINT­Befehl am Anfang einer neuen Zeile ausgeführt wird. Mit dem bloßen PRINT-Befehl erzeugt man
also eine Leerzeile auf dem Ausgabegerät. Der Computer läßt verschiedene Formatierungsarten zu; dabei ist zu beachten, daß ein String
genausoviel an Platz belegt, wie er Zeichen hat. Eine Zahl belegt soviele Plätze, wie sie Ziffern hat, plus eine Spalte für das Vorzeichen.
Das Komma:
Jede zehnte Druckposition ist intern im Computer vortabuliert. Das Komma in einem PRINT-
Befehl bewirkt, daß das folgende Zeichen in die nächste vortabulierte Position geschrieben wird. Zeilenvorschub und Wagenrücklauf werden unterdrückt.
Beispiel: ? , ”XY”, ”XY”
XY
Î
1
Î t
11
XY
21
17
Beispiel: A = 3 : : B = - 4 : ?
3
Î Î
- 4
2 11
Das Semikolon:
Das Semikolon in einem PRINT-Befehl bewirkt, daß Zeilenvorschub und Wagenrücklauf unter
drückt werden (Ausgabe ohne Zwischenraum).
Beispiel: ? ”COM”; : ? ’’PUTER”
COMPUJIR
Beispiel: A = -3:B = -4:?A;B; ’’TEXT”; A
= 3_:4_IEXJ-3
Der SPC-Befehl:
Der SPC(n) bewirkt den Ausdruck von n Leerzeilen, n kann zwischen 0 und 255 liegen, n kann auch eine Variable oder ein berechneter Ausdruck sein. Nachkommastellen bleiben unbeachtet.
Beispiel: ? SPC(3) ’’DREI” SPC(1) ’’FUENF”
DREI FUENF
Beispiel: ? SPC(^) ’’DREI”
DREI
Siehe Anmerkung zum TAB-Befehl.
Der TAB-Befehl:
Er hat das Format TAB(n), wobei n eine Zahl oder ein berechneter Ausdruck zwischen 0 und 255 sein kann. Stellt n keine ganze Zahl dar, so werden die Nachkommastellen nicht beachtet.
Der Befehl TAB(n) bewirkt den Ausdruck des folgenden Zeichens n Freistellen vom linken Bildschirmrand (oder Papierrand) entfernt.
Beispiel: ? TAB (4) 4; TAB (8) ”X”
4 X
Ist die durch den TAB-Befehl spezifizierte Druckposition bereits belegt, so wird in die nächste freie Position geschrieben.
Beispiel: ? TAB(4) ”X” TAB(3) ”Y”
XY
Anmerkung: Bei der Verwendung von TAB und SPC dürfen die Daten nur durch Semikolon ge
trennt werden, da das Komma eine höhere Priorität besitzt als die Befehle TAB und SPC.
18
1.2.6. Der INPUT-Befehl
Und so verstehe ich Sie ... Um die Dialogfähigkeit des cbm zu verwirklichen, reicht der PRINT-Befehl nicht, wir benötigen
auch ein offenes Ohr, den INPUT-Befehl:
n INPUT [’TEXT” ;] Variablenliste
(n = Zeilennummer des Befehls)
Der INPUT-Befehl bewirkt einen Stop des Programms und ermöglicht eine Dateneingabe für die
Variablen, die hinter dem INPUT aufgeführt werden.
Stehen mehrere Variablen hinter dem INPUT, so müssen entweder alle Daten durch Komma getrennt werden und abschließend muß die RETURN-Taste gedrückt werden oder nach jeder einzelnen Eingabe muß die RETURN-Taste betätigt werden.
Beispiel: 20 INPUT A, C $, D
Eingabe : 2, KARO, 3
RETURN
oder : 2
KARO
3 RETURN
Das Programm zeigt die Bereitschaft zur Eingabe durch ein Fragezeichen oder durch Drucken des
Textes, den wir hinter dem INPUT in Anführungszeichen vermerkt haben, plus Fragezeichen an.
RETURN
RETURN
__________
i
I
Beispiel: 30 INPUT A
Ausdruck: ?
40 INPUT ’’GEBEN SIE A EIN”; A Ausdruck: GEBEN SIE A EIN?
Als Variable können selbstverständlich auch Ganzzahl- und Textvariablen verwendet werden.
Beispiel: 10 INPUT ’’TEXTEINGABE”; B $
Geben Sie mehr als 80 Zeichen bei einem INPUT-Befehl ein, so ignoriert der Computer die ersten
80 Zeichen und speichert nur die nachfolgenden Zeichen ab. Weiter darf während der Eingabe für eine numerische Variable kein Komma oder Doppelpunkt
benutzt werden, da der Computer diese Zeichen als Eingabeende interpretiert.
Soll ein String eingegeben werden, der Komma oder Doppelpunkt enthält, so muß dieser String
in Anführungszeichen geschrieben werden.
1.2.7 Der GET Befehl
Für Leute die nicht mehr warten wollen ...
Der n GET Variable
Befehl ist ebenfalls ein Eingabebefehl. Im Gegensatz zum INPUT hält das Programm bei einem GET nicht an und es kann nur eine Variable
eingegeben werden. Es können Variablen oder Textvariablen eingegeben werden. Es wird nur ein Zeichen bzw. eine Ziffer übernommen.
n = Zeilennummer des Befehls
19
Beispiel: 10 GET C
30 GET B $
Da der Rechner in der Lage ist, bis zu 9 Tastenbetätigungen zu speichern, wird dasjenige Zeichen übernommen, das während des Programmlaufes vor Erreichen des GET-Befehls gedrückt wurde.
Soll der Rechner auf Eingabe eines Zeichens warten, so kann das mit einer Warteschleife erreicht werden. (Siehe 1.2.15).
Beispiel:
20 GET A $ 30 IF A $ = “ “ THEN 20
1.2.8 Der DATA Befehl
Mein Grundwissen ... Nun lernen wir einen Befehl kennen, mit dem man Daten speichern kann, auf die der Rechner im
Bedarfsfälle zurückgreift. Es ist der Befehl:
n DATA Liste n = Zeilennummer des Befehls
Die Daten werden hierbei an beliebiger Stelle im Programm hinter DATA aufgereiht und später der Reihe nach von links nach rechts mittels READ gelesen, (siehe 1.2.9) Die Daten werden unter einander durch Kommas getrennt und dürfen daher weder Komma noch Doppelpunkt enthalten. Sollen diese beiden Zeichen oder führende Leerzeichen mittels DATA in eine Textvariable gebracht
werden, so muß dieser Text in der DATA-Anweisung in Anführungszeichen stehen, was ansonsten
bei Texten hinter DATA nicht der Fall ist.
Beispiel: 100 DATA 15,3.7, 9,12
150 DATA "DER:”, COMPUTER
Die Daten hinter einem DATA können von verschiedenen READ-Anweisungen gelesen werden,
da sich ein Pointer (Zeiger) „merkt“, ab welchem Wert mit dem READ Befehl weiter gelesen wird.
Beispiel: 10 READ A, B, C
Pointer (READ noch nicht durchgelaufen)
Pointer (READ 1 x durchgelaufen)
| Pointer (READ 2 x durchlaufen)
100 DATA 4, 5, 7, 3.1,7, 9 I
1.2.9 Falls ich es vergessen habe
..........
DER RESTORE BEFEHL
Beim DATA-Befehl haben wir erfahren, daß der Computer die Daten hinter dem DATA der Reihe nach liest. Sollen, nachdem bereits Daten gelesen wurden, nicht die nachfolgenden, sondern die ersten Daten gelesen werden, so benutzen wir den
n RESTORE
n = Zeilennummer des Befehls
Befehl.
Mit anderen Worten, dieser Befehl setzt den Pointer vor das 1. Zeichen der Daten.
Beispiel: 30 RESTORE
20
1.2.10
------
und so komme ich daran
DER READ BEFEHL
Der
n READ Variablenliste
Befehl bezieht sich auf die DATA-An Weisung und kommt ohne diese nicht aus. Der READ-Befehl liest die Daten in der vorgegebenen Reihenfolge und ordnet sie den Variablen, die hinter ihm auf geführt sind, in der gleichen Reihenfolge zu.
n = Zeilennummer des Befehls
Beispiel: 10 READ A, B
20 DATA 102, 3, 5, 6 Wird der READ-Befehl zum ersten Mal durchlaufen so ist A = 102, B = 3;
beim zweiten Durchlauf von READ ist A = 5, B = 6.
Natürlich können auch Textvariablen gelesen werden. Falls der Pointer hinter dem letzten Zeichen
der DATA-Anweisung steht und ein READ erfolgt, erscheint die Fehlermeldung:
?OUT OF DATA ERROR IN . ..
(Sie wissen natürlich schon, daß man diese Fehlermeldung mit RESTORE (siehe 1.2.9) umgehen kann).
1.2.11 Ich kann auch springen
.........
DER GOTO BEFEHL
Dieser Sprungbefehl wird als unbedingter Sprungbefehl bezeichnet, da er immer ausgeführt wird, sobald das Programm auf einen derartigen Befehl stößt, oder sobald ein GOTO direkt eingegeben wird.
n GOTO m
n = Zeilennummer in der der Befehl steht m = Zeilennummer in die gesprungen wird
Dieses GOTO bewirkt, daß nicht der Befehl mit der nach n folgenden Zeilennummer bearbeitet wird, sondern daß das Programm seine Arbeit in der Zeilennummer m fortsetzt.
Beispiel: 10 PRINT’’ANFANG”
20 GOT0150
30 PRINT ’’ENDE”
150 PRINT ’’SPRUNG”
Eingabe von RUN (siehe 1.3.1) bewirkt folgende Ausgabe: ANFANG SPRUNG
Die Zeilennummer m muß vorhanden sein, sonst erfolgt eine Fehlermeldung. Variablen oder andere Zeichen als ganzzahlige positive Zahlen dürfen nicht benutzt werden.
Stehen in einer Programmzeile weitere Befehle hinter einer GOTO-Anweisung, so werden sie
nicht ausgeführt.
21
1.2.12 Gewußt wohin
........
DER ON ... GOTO BEFEHL
Hatte das Programm beim GOTO nur eine Möglichkeit zu springen, so kann beim ON ... GOTO Befehl der Sprung vom Wert einer Variablen abhängig gemacht werden.
n ON v GOTO m1, m2,
n = Zeilennummer des Befehls v = Formel, die den Sprung bestimmt
m1, m2 = Zeilennummern zu denen gesprungen werden soll
Beispiel: 10 ON F GOTO 50,100, 300
Ist F < 1 erfolgt kein Sprung Ist F = 1 erfolgt Sprung nach 50
Ist F = 2 erfolgt Sprung nach 100 Ist F = 3 erfolgt Sprung nach 300 Ist F > 3 erfolgt kein Sprung
Anstelle der Variablen kann auch ein mathematischer Ausdruck stehen. Das Ergebnis des er-
rechneten Ausdrucks wird vom Rechner zu einer ganzzahligen Größe umgewandelt, d. h. Nach kommastellen werden ignoriert.
Beispiel: 50 ON (A+B) - (C+D) GOTO 1000, 300, 700
Die Anzahl der Sprungadressen ist durch die maximale Zahl von 80 Zeichen pro Zeile begrenzt.
Als Alternative bei sehr umfangreichen ON ... GOTO-Befehlen bieten sich daher mehrere ON ...
GOTO’s an, bei denen die Variable im zweiten Befehl dem Programm entsprechend berechnet wird.
Beispiel: 10 ON K GOTO 100, 200, 300, 400
30 ON K-4 GOTO 500, 600, 700, 800
1.2.13 Jetzt geht es in die Unterwelt
.........
DER GOSUB BEFEHL
Der folgende Befehl sollte für die Programmteile benutzt werden, die wiederholt, auch von ver schiedenen Stellen des Programms aus, durchlaufen werden müssen. Diese Programmteile nennt man Unterprogramm oder auch Subroutine. Sie können an beliebiger Stelle im Programm stehen und werden mit dem Befehl
n GOSUB m
aufgerufen. Nach Bearbeitung des Unterprogramms kehrt der Rechner zu dem Befehl zurück, der hinter dem
GOSUB folgt, (siehe RETURN 1.2.16).
n = Zeilennummer des Befehls m = 1. Zeilennummer des Unterprogramms
Beispiel: 10 GOSUB 100
20 PRINT ’’HAUPTPROGRAMM” 50 END: REM ENDE DES HAUPTPROGRAMMS 100 PRINT ’’UNTERPROGRAMM” 110 RETURN: REM ENDE DES UNTERPROGRAMMS
Die Eingabe von RUN bewirkt die
Ausgabe: UNTERPROGRAMM
HAUPTPROGRAMM
Ein Unterprogramm kann wiederum ein anderes Unterprogramm aufrufen, und dieses dann das nächste
..........
Insgesamt können bis zu 26 Unterprogramme ineinander verschachtelt werden.
22
1.2.14 Verteiler für die Unterwelt
........
DER ON ... GOSUB BEFEHL
Der Befehl
n ON v GOSUB m1,m2...
n = Zeilennummer des Befehls v = Formel, die den Sprung bestimmt m1,m2... = Zeilennummern, zu denen gesprungen werden soll
entspricht dem ON . . . GOTO (siehe 1.2.12), nit dem Unterschied, daß hier keine einfachen Sprünge stattfinden, sondern zu Unterprogrammen verzweigt wird (siehe 1.2.13).
Beispiel: 10 ON Z GOSUB 1000,1500, 2000
20 STOP
Der Sprung erfolgt abhängig von der Variablen Z in eines der 3 Unterprogramme, die natürlich mit RETURN abgeschlossen werden müssen. Nach Abarbeitung des betreffenden Unterprogramms wird die Zeile 20 ausgeführt.
1.2.15 Nun fällt die Entscheidung ... DER IF... THEN BEFEHL
Um abhängig von einer logischen oder mathematischen Aufgabe eine Entscheidung zu fällen, gibt es die Befehlsgruppe IF ... THEN.
n IF Vergleich THEN {m, Befehl}
n = Zeilennummer des Befehls
Vergleich = Vergleich einer oder mehrerer Variablen oder Formeln
m = Zeilennummer deren Befehl ausgeführt werden soll
Befehl = Befehl der ausgeführt werden soll
Beim Vergleich können Variablen (Auch Textvariablen), Konstanten oder Formeln untereinander verglichen werden.
Beispiel: IF A = 1 ... / IF A$ = ”JA” ... / IF CC = 3 ...
IF 3> B*C + 3.../IFA <> C . .. / IF D% > E % . . .
Ist die Vergleichsbedingung erfüllt, so wird der Befehl hinter dem THEN ausgeführt oder nach der dort stehenden Zeilennummer verzweigt, ansonsten fährt das Programm mit der nächsten Zeilen nummer fort.
Beispiel: 10 IF A + B < = 150 THEN 30
20 PRINT ”A + B > 150”: GOTO 100
30 PRINT ”A + B < = 150”: GOTO 100
eleganter: 10 IF A + B < = 150 THEN PRINT ”A + B < = 150”: GOTO 100
20 PRINT ”A + B > 150”: GOTO 100
Wie in diesem Beispiel das PRINT, so können auch andere Befehle hinter dem THEN stehen. Als Besonderheit läßt das COMMODORE-BASIC mehrere IF-Abfragen in einer Zeile zu.
Beispiel: 10 IF A = C THEN IF A = 5 * B THEN ....
23
Ist hierbei bereits die erste Abfrage nicht erfüllt, wird sofort die nächst höhere Programmzeile aus geführt.
1.2.16 Zurück geht’s immer leichter DER RETURN BEFEHL
Wir haben mit GOSUB, ON . . . GOSUB die Möglichkeit kennengelernt ein Unterprogramm auf zurufen. Um nun wieder ins Hauptprogramm zurückzukehren, muß der letzte Befehl jedes Unter
programms:
n RETURN
sein. Diese Anweisung bewirkt, daß der dem Aufrufbefehl (GOSUB oder ON ... GOSUB) folgende Be
fehl als nächster ausgeführt wird (siehe 1.2.13,1.2.14).
Der Befehl RETURN muß Buchstabe für Buchstabe eingegeben werden und darf nicht mit derTaste
RETURN verwechselt werden.
Beispiel: 40 A = 5 : B = 10
50 GOSUB 1000 60 PRINT ’’ERGEBNIS” U
1000 REM UNTERPROGRAMM 1010 U = (A+B) * 3 1020 RETURN
READY RUN ERGEBNIS 45
Solange die Unterprogrammtechnik für uns noch ungewohnt ist, werden wir vielleicht die Fehler
meldung: 7RETURN WITHOUT GOSUB ERROR erhalten. Sie tritt auf, falls ein RETURN erreicht
wird, ohne daß ein GOSUB durchlaufen wurde. Dieser Fehler kann auftreten, wenn in ein Unter
programm mit einer GOTO-Anweisung gesprungen wurde. Auch dann, wenn ein Unterprogramm
ans Ende des Hauptprogramms geschrieben wird und am Ende des Hauptprogramms kein STOP oder END steht.
------
n = Zeilennummer des Befehls
Beispiel: 10 REM HAUPTPROGRAMM
50 GOSUB 1000
1000 REM UNTERPROGRAMM
1100 RETURN
Bei diesem Beispiel durchläuft das Programm die Subroutine nicht nur nach dem Befehl GOSUB
1000 sondern auch nach Ende des Hauptprogramms. Der Befehl:
990 END (etwa 10 Leerzeichen) verhindert diesen Fehler.
1.2.17 Immer wieder das Gleiche
DIE BEFEHLSGRUPPE - FOR NEXT STEP
Wollen Sie eine Schleife programmieren, d. h. eine Routine, die mehrmals mit einer veränderten Variablen durchlaufen wird, so benutzen Sie die Befehlsgruppe:
n, FOR {Laufvariable = Anfangswert} TO {Endwert} STEP {Schrittweite} n2 NEXT {Laufvariable}
n^ n2 = Zeilennummern der Befehle
.........
24
Laufvariable
Anfangswert
Endwert
Schrittweite
Die FOR-NEXT Befehlsfolge bewirkt, daß der Programmteil zwischen n, und n2 solange durch laufen wird bis die Laufvariable größer als der Endwert ist. Hiernach wird die Anweisung nach n2 be arbeitet. Bei jedem Durchlauf des NEXT wird die Laufvariable, die zuerst gleich dem Anfangswert ist, um die Schrittweite erhöht und das Programm bearbeitet die Befehle zwischen n, und n2.
muß eine Fließkommavariable sein (darf keine Integervariable sein) kann eine Konstante, eine Variable oder ein mathematischer Ausdruck sein kann eine Konstante, eine Variable oder ein mathematischer Ausdruck sein kann eine Konstante, eine Variable oder ein mathematischer Ausdruck sein. Unterbleibt die Angabe für die Schrittweite, so ist diese automatisch +1.
Beispiel: 10 FOR A = 1 TO 10 STEP 0.5
20 PRINT A 30 NEXT A 10 FOR K = 3*B TO C/5 STEP -1
100 NEXT K
Die Laufvariable muß beim Rechner nicht im NEXT-Befehl angegeben werden. Also ist folgende Befehlsfolge auch korrekt:
100 FOR J = 5 TO 100
200 NEXT
FOR-NEXT Schleifen können auch verschachtelt angeordnet werden.
Beispiel:
äußere
Schleife
Die Verschachtelung muß symmetrisch sein, d. h. die zuletzt eröffnete Schleife muß als erste wieder geschlossen werden. Die Befehle 100 und 110 können zu einem Befehl:
10 FOR A = 1 TO 100 20 FOR B = 1 TO 10
innere Schleife
100 NEXT B
—110 NEXT A
100 NEXT B,A zusammengefaßt werden.
Bei verschachtelten Schleifen müssen unterschiedliche Laufvariablen benutzt werden.
1.2.18 Wieviel soils denn sein ... DER DIM-BEFEHL
Im Kapitel 1.1.2 haben Sie drei Formen von Variablen (A, A%, A$) kennengelernt. Es gibt nun eine Möglichkeit Gruppen einer dieser 3 Variablensorten zu einem „Feld“ (Matrix, Array) zusammenzu fassen. Ein solches Feld besteht dann aus mehreren Variablen einer Sorte (z. B. Textvariable), die
indizierte Variablen genannt werden. Indizierte Variable, weil zu der normalen Variablen ein Index tritt. Während eine gewöhnliche Variable nur einen Speicherplatz repräsentiert, kennzeichnet man ein ganzes Feld von Speicherplätzen mit einer Variablen und unterscheidet die einzelnen Elemente durch Indizes. Das heißt indizierte Variablen aus einem Feld haben die gleiche Variable und unter scheiden sich nur durch ihren Index.
Beispiel: Indizierte Variablen aus einem Feld
A$(1), A$(9), A$(12), A$(21)
Variable, die das
Feld kennzeichnet
Index, nach dem die Elemente eines Feldes unterschieden werden
__________
25
Indizierte Variablen aus verschiedenen Feldern: B1$(3), C%(5), A(12), A3(5), D3%(2)
Die im Beispiel gezeigten Variablen haben alle nur einen Index, deshalb nennt man diese Felder „eindimensionale Felder“. Im COMMODORE-BASIC können aber auch mehrdimensionale Felder
aufgebaut werden, d. h. Felder deren Elemente mehr als einen Index haben.
Diese Indizes werden innerhalb der Klammern durch Kommata getrennt.
Beispiel: Z%(1,0,2) X$(1,2) ZA(3,2,0,1)
Es kann auch jede Variable oder Formel deren Wert 3= 0 ist als Index benutzt werden. (Nachkomma stellen werden ignoriert!).
Beispiel: Y$(N,1) K%(A+2,B*3,0) KA(N|3)
Hierdurch erreicht man eine indirekte Adressierung von Variablen, die durch ein Beispiel veran schaulicht werden soll:
10 FORI = 0 TO 2 20 FOR J = 0 TO 2 40 FOR K = 0 TO 3 50 A(I,J,K) = RND (5) 60 NEXT K,J,I 70 STOP
Im Normalfall reserviert der Rechner pro Feld einen Speicherplatz für 11 indizierte Variablen pro Index. D.h., daß er für das im Beispiel benutzte dreidimensionale Feld Speicherplatz für 11 *11 *11 = 1331 Variablen reserviert. Das entspricht 6655 Bytes.
Diese Reservierung können wir jedoch mit dem folgenden Befehl ändern:
n DIM Name 1 (Zahl, Zahl,... ), Name2 (Zahl, Zahl,... )
n = Zeilennummer des Befehls Name = Variable durch die das Feld bezeichnet wird Zahl = höchster Index, der benutzt wird (kann Variable oder Formel sein).
Für unser letztes Beispiel lautet der Befehl:
5 DIM A (2,2,3)
Er bewirkt, daß nur Speicherplatz für 3*3*4* = 36 Variablen reserviert wird. Es ist auch möglich, mehr als 11 Speicherplätze zu reservieren:
Beispiel: 10 DIM A$(29)
Mit diesem Befehl wird ein Feld für 30 Textvariablen dimensioniert.
Weitere Beispiele:
DIM A% (2,N) DIM B (2,J+3,K*2) DIM C$ (1,BA,K|3)
26
1.2.19 Einmal gewußt - immer gewußt...
DIE BEFEHLSGRUPPE DEF FN. ( )
FN.( )
Soll eine bestimmte Berechnung mehrmals für verschiedene Zahlenwerte durchgeführt werden, so definieren wir eine Funktion durch den Befehl:
ni DEF FN Name (Variable) = Formel
n! = Zeilennummer des Befehls Name = eine Variable fungiert als Name der Funktion
Variable = die Variable, die bei jedem Funktionsaufruf
angegeben wird.
Formel = mathematischer Ausdruck.
Diese Funktion kann, nachdem sie definiert ist, beliebig oft direkt oder von verschiedenen Stellen des Programms durch den Befehl:
n2 FN Name (Variable)
aufgerufen werden.
n2 = Zeilennummer des Befehls (muß immer größer als ^ sein) Name = die Variable, die beim DEF-Befehl als Name gewählt wurde
Variable = die Variable oder die Konstante für die die Formel berechnet
werden soll.
Beispiel: 10 DEF FNQ (Y) = Y f 0.2
50 Z = FNQ (A)
Durch diese Befehle wird der Wert für die 5. Wurzel aus A im Speicherplatz Z abgespeichert.
Beispiel:
Soll in einem Programm mehrmals der Hyperbelsinus von verschiedenen Zahlen (X) berechnet
werden, so definieren wir die Funktion mit dem Namen „H“:
10 DEF FNH (X) = (EXP (X) - EXP (-X)) / 2
Wollen wir nun den Hyperbol-Sinus für 3 ausrechnen und ausdrucken so schreiben wir:
PRINT FNH (3)
Anmerkung: sinh (x) = e ~
e
1.2.20 Der Schlüssel nach draußen ...
DER OPEN BEFEHL
Wie sie vielleicht wissen, können sie an Ihrem Rechner die verschiedenartigsten „Peripherie geräte“ anschließen. Zum Beispiel einen Ausgabedrucker oder ein Floppy-Disk-Laufwerk.
Um diese Geräte ansprechen zu können, müssen Sie ein sogenanntes logisches FILE, d.h. eine DATEI eröffnen, in die Daten geschrieben oder aus der Daten gelesen werden. Sie eröffnen eine DATEI durch den Befehl:
OPEN m,, [m2, m3, ’’Name”]
27
rri! = die logische Datei-Nr., ganze Zahl zwischen 1 und 255. m2 = Geräte-Nr. des anzusprechenden Gerätes
(wird 1 gesetzt, falls Angabe fehlt)
0 = Tastatur
1 = # 1 Recorder 2 = # 2 Recorder 3 = Bildschirm
4-15 = externe Geräte
m3 = Art der Datenbewegung (wird 0 gesetzt, falls Angabe fehlt)
0 = lesen
1 = schreiben
2 = schreiben mit zusätzlichem END OF TAPE-Zeichen.
Name = kann angegeben werden um Dateien mit einem Namen direkt
anzusprechen. Der Name darf aus höchstens 16 Zeichen bestehen und darf nicht in anderen Namen enthalten sein.
Es dürfen höchstens 10 Dateien gleichzeitig geöffnet sein! Wird diese Zahl überschritten, erfolgt die Fehlermeldung: ?TOO MANY FILES ERROR.
Beispiele:
30 OPEN 1,2,1, ’’DAT 1”
Der Befehl bewirkt das öffnen der Datei 1 um auf der 2. Kassette Daten unter dem Namen DAT 1
abzuspeichern.
40 OPEN 2,1,0
Dieser Befehl öffnet Datei 2 zum Lesen vom Recorder # 1.
Kürzer: 40 OPEN 2
1.2.21 und so schließe ich ab ...
DER CLOSE BEFEHL
um zu verhindern, daß die maximale Anzahl der geöffneten Dateien (Files) überschritten wird, sollte
jede Datei geschlossen werden, sobald die Lese- oder Schreiboperationen ausgeführt sind. Dies geschieht durch:
n CLOSE rr^
n = Zeilennummer des Befehls nri! = die logische Datei-Nr. derzu schließenden Datei (ganzeZahl zwischen 1 und 255)
Beispiel: 100 CLOSE 2
Der Befehl bewirkt das Schließen der Datei-Nr. 2.
1.2.22 Ein Programm wird gespeichert...
DER SAVE BEFEHL
Das einmal in den Rechner eingegebene Programm kann auf einfache Weise gespeichert werden. Die einfachste Möglichkeit hierzu ist das Abspeichern des Programms mittels des Kassettenre corders.
28
Loading...
+ 110 hidden pages