197 7 77MB
German Pages [82] Year 1979
SSOSOoSO2oUu1S
FOR X=N
N=1
TO
10
GOSUR 1000
Günter Abeldt
LET XuN”2 GOSUR 1000 LET
X=N"3
GOSUR 10900 LET X=1/N 00 GOSUR 1000
10 LET X=1/N”2 20 GOSUR 1000
30 40
LET X=1/N"% 1000 GOSUR
ee
N Grundlagen und Beispiele
30 sosup 1000 60 _GOSUR 1000 80
GOSUB
1000.
00
a
10900
20
NEXT N
nwenduna in Mikro-
lini
90 LET Xebxkın
95
EN
000
REM
UNTERFRÜGRAMM
DRUCKEN
HH 020_IF
X=z10
THEN
040
X 1000
Abe".
#44"
N
GO
TO
EEE IF
100 PRINT
140 PRINT 120
RETURN
THEN
® "5
USING
At"
er
e
E
|
E55
1100
SU
TO
3
1100
u
Ab
.
EALY
UN UNKTI
I E37
Se
D} Pe "
"a
01
X ne
,37%
a
2000
Ku — = und 2 ae
Fa INT Tai aa
er
ta
JUN-
X"
4 ae ei 1-4 DE nt aa
=
4:
8.
>r
D00 Ze { v4
36% 00
KTE
7
ze
msi,25;
10. O0
6: 000
BASIC
+
O0O I
#
EL Ft
mraws
EN 216.0
8. 000 FA a
a
10.00
u
a
t-*
100,0
Ze ee
1006
1/X72
7 —i rn ns
Ö Hr
We
+
5000
TE eg Tr A AA
rn
i
4
0.2500
euer
ut Fe u. u
12%
FIT IH CHF
erg a
4
.
2% IH a aHH en
0,2500 U
ae
gr 1 E 5 uhr
Y. 9625
Er YH
FE IF
0.1667
0% 0278
a Y%
0.1060
1er =
>3 == a
IR Duwas Fe
a z
+
IH a FISCH me a
0% F% 2
in 1:Kar == 57
5 an 2Ar
SUR (X)
4.
L» 4 Ri)
0:
Dre En a
+
2.015 6
yı riIy X u wi
LEER
= vamr.n IH au. a HFDa
Er
wre au
4
2000 w (m
z
ZrIHF Ede u.wer tr
am
693: De 7
a
IE Ferien 2 F- =
ar
1.386 J T
= De ed Ep ge + a
0. 00a,
2,447
1.792
VO1NS
Dr ame
{Y Y SETZE
G
26828
079
an
a
®
2
0.0100
n*
6.0010
Günter Abeldt
BASIC Grundlagen Anwendung Beispiele
in Mikro- und Minicomputern
Frech-Verlag Stuttgart
Der Verlag bittet zu beachten: Unsere Veröffentlichungen von Schaltungen und Verfahren erfolgen ohne Rücksicht auf bestehende Patente, da sie nur für Amateur- und Lehrzwecke bestimmt sind. Eine gewerbliche Nutzung ist ausdrücklich untersagt. Trotz sorgfältiger
Überprüfung
aller Schaltungen
und
Angaben
durch
Verfasser
und Verlag lassen sich Fehler nie ganz vermeiden. Der Verlag kann deshalb weder eine Garantie für Fehlerlosigkeit noch die juristische Verantwortung oder irgendeine Haftung übernehmen. Verfasser und Verlag sind für Hinweise auf Fehler sowie für Verbesserungs- oder Ergänzungsvorschläge dankbar.
ISBN 3-7724-0367-0 : Best.-Nr. 455 © 1979
frechb-verlag Stuttgart
Wissenschaftliche Assistenz:
Professor Otmar Kilgenstein
Inhaltsverzeichnis . Piogfanmsprachein
sn
na
nn
aan 1 aan an m nn 1 an aa un am m me rn m
Maschinensprachen
1.2. 1.3.
Maschinenorientierte Programmsprachen ...........s2s2sseeeneeneeeenne nenn Problemorientierte Programmsprachen ...............----ssssnnneeennennnnnn
1.4. 1.5.
Assembler, Compiler und Interpreter .............2:2essssseeeeneeeneeen nennen Programmablaufpläne (Flußdiagramme) ............s2222220eeeeneeeennnnennn
2.1. 2.2.
Besondere Eigenschaften von BASIC ............22eeeseesnneenennnee rennen Zeitsparendes Programmieren und Austesten ...........--4eesseeeeennenen
3.1.
Konstanten
. Einführung in BASIC
... u. u... 000 nm uns mn nr mn a me
era mn
1.1.
an an am nn sa nam sn mine
.............2@eseeseseeneenennnenennenennen nenn nnnnnnenneneenenn
2:3. Sprachumlang ... 2.000 me nm ems men ann wma mm mn mn nenn wenemıme 24. Programmierenin BABSIG .....uum0nn mann ann nn nn mm anne 2.5. Zusammenstellung der Anweisungen und Befehle in BASIC .............-. BASIC-Sprachelemente ..............22222222224eeeeeeneeeeeennennennenen nennen 3.2. Variable
........2.eeesseeneeeneneeeeeeneeeeneeeneneenenne nennen ernennen
.......2220eecceeeeeeeeneeeneeeeeenneeennenneneenennenenneeee nennen nenne
3.2.1.
Einfache Variable
3.4.1.
LET: Zuweisung
3.4.9.
REM:
...............:-22s@nssaseenenseeeneeneene rennen nenn
3.2.2. Indizierte Variable ...........2ceeesssssneeseeneeeenenenennneenennr nennen 323 Siringwariabla nun ame me namen samen nn nn mE mm nennen 3.3. Mathematische Ausdrücke .:... =... :u:.0:2:22um 21m emesern mn wann 3.3.1. Arithmetische Operatoren ...........--2@@22@220 sn eeeeesneeeeen ernennen 3.3.2. Logische Operatoren ...........-----4444eneneeneennnnnn nenn nenn nn 3.3.3. Mathematische Funktionen .............222e2sseesenenenenenee nennen 3.4. BASIC-Befehle ............22222eeesssseseneeneeeeenneeeeeenene nennen nennen 342. 3.4.3.
.........22-22@seeeneeeeeeneenneeenn nennen enneennennnnn
Print: Drucken'van Dalen um. mınsamının enenensnensenenenennnnn Verzweigungsbelchle =: u... 122 0 san 00 su 2 ma un an em mn m m man sm nem wer 343.1. GOTO: Sprunganweisung um men me ma asun en msnınenne 3.4.3.2. ON GOTO: Berechnete Sprunganweisung .....-...-2444..3.4.3.3. IF..... THEN: Bedingte Verzweigung ............-..2-42220.3.4.3.4. FOR..... NEXT: Schleifenanweisung ............-:44222200.3.4.4. GOSUB: Sprunganweisung in ein Unterprogramm ..........2222200.3.4.5. READ-DATA: Einlesen von Daten ..........ceeeneeeeeneeneeeeene nenn 3.4.6. RESTORE: Anweisung zum wiederholten Lesen eines DATA-BlockKS .....2222seesseeeeneseeneneneeenenenneneen nennen nennen nenn 3.4.7. INPUT: Eingabsanweisung «:0..m0 mn non un one nn wine num em 3.4.8. DIM: Dimensionierungs-Anweisung ........:umeesseeenenen nennen nenn Kommentaranweisung
........22-2@@2ees seen eenn een nennen nn
3.4.10. PRINT USING: Druckanweisung ...........-.-2sssssseeeeneneeneeen een 3.4.11. PRINT TAB: Tabulatorfunktion .............--..--42224esseeneenennnnnn 3.5.
Anwendung der mathematischen
3.5.1.
SIN(X) und COS(X)
Funktionen
............2eeesseeereeen nenne
.......2222eesssseesesneeeenseneneeenenne nennen re nen
3.5.2. SOR(X), EXP(X), LOCX)
zucccanennneeennneeeenneeenen nenn
28
353, ABS) ums m nam nm En 1m ums HR Ha mn a Ei 6 ne KAT Tl man nn am an nn men innen 3:54: INT) zusammen anna nme mn nenn mann am nn an ea nennen 3.55: RNDOR) .....- 00mm nenne nennen nennen nn nenn naar wanna nn nn anna 3.5.6. RANDOMIZE ..........22222222sssssssssssssenssenennnensensensennennenen 3.5.7. SIGN(X) .......220222@eeeneeeneeeenseennnnenennnnnennnnnennenneneee nennen 3.5.8. DEFFNA(X) ......22222ssssssnneeessssseneenenseeneneeenennneseenneneenen 4. Befehle von Ein- und Ausgabegerät (Terminal) .............ccceeeeeeeeeeenn 5. Anweisungen für das Zusammenspiel mit Externspeichern ..........2.222c...
29 29 29 31 s1 31 32 34
6.
Programmbeispiele ..............ceesseeeeesseeeesennnneennnnnnnnnnnennnen nennen 6.1. MAXIMAL-Bestimmung .........2222@eesseeeeeeeeeeseneseneenenneennnnnen nenn
36 37
6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8.
Lösung einer GLEICHung .........222222neeeeseenneneennneseneeeeeeeneeeeeeen FUNKTIonNen ...........22222222 0 neeessseeeeneneeeseeneennenenseneneeneennnneen FÜX) ...22202eesesnseenennenesnssennneesennneseenenneseeenennnenseeeeenneen nn SPULEN ..........ueeeessssseeeeeneneneseneneeeneeeneeneeeneneen een nenne nenn GLEICHung ............ NuuSueeeeneeseesnnnstenenssnseeeeesenesseeeeeeeeeeeneneen FAKULTÄL .......200ueeeeeseeeeneeeesnnsennennnneeennenenenenee een nennnn nennen SINUS .............2222sasssseenessssnssenneneneeeeneeenenneneeeeeeneeennneenenn
37 38 40 40 41 43 45
6.9.
MITTELwertberechnung
........22222sesssneeeeeeneennenenenennnneneenne nenn
45
........... Leeeeenseenseenerenseenerensseneeneneseensenneneen
59
6.10. 6.11. 6.12. 6.13.
RLC-Stromkreis ............222uueueeeeseeenneeeseeenseeneeeeenenenneeeee een ROULETT ........222ueeessssesenneennsnssenneeenneeeeeeneneneneeeeeeneennnnnenn Berechnung von Kreis- und Hyperbel-Funktionen ..............ccseeseennMondlandung ...........22esssssseeeeesessesenennnneneeneeeneeneeeeeneneneenenen
6.14.
Euklid Algorithmus
7.2.
Bekannte BASIC-Versionen fürMikrocomputer
7. BASIC imMikrocomputer ........cecesssssseeeeeeesessnnnnennneneeneeenennne nennen 7.1. Tiny-BASIC ...........22222222ssseneeeesssseennennenneneenennnneeneeeeneeeneneen
.........222ceesseeeeeneneen
48 53 5 57 60 61 62
7.3. QuasiCompilierung .........22222eeeeeeeeeeeseeenenneeeeneennnnnnne nennen 8. BASIC im Minicomputer ............2cceeeeeseeesseeessnsnnsennnnnnnnnnnen nennen nennen
63 63
8.1. Programmierungsbeispielin PEGAMAT-BASIO .......c2ccceeeeeeaanannnnnn Speicherbausteine ..............@essssseseeneeenensseeenneneneenennennnnnen nennen nenn 9.1. Aufbau einesHalbleiterspeichers ............:.2uua2seeeeeneneeneeneeenee een
65 66 67
9.
9.2. 9.3. 9.4. 9.5.
Schreib-Lese-Speicher RAM .........2.22eessessseeeseeeseneeenneneenennennenn Festwertspeicher ROM ...........ucesssseeeeeeeseeeneeeeenneeeeeneeennene een Programmierbarer Festwertspeicher PROM ..........csescsceeeeeeeeesennnnn Löschbarer FestwertspeicherEPROM ........ceeeasseeeeeenennanneeneneenn
67 68 68 68
9.6.
Magnetblasenspeicher
.........22222eeeeeeeeeeeeessessneennnnnnnnenene een nen
69
...........eeeesseeeneeeenennnnnnnnnnnnnn en
70
10. Anhang 10.1.
........222222eeeeeeneseeneneeensnsseeneennnesseseneeeneeeneeennnnneee nennen
Schlagwortverzeichnis
10.2. BCD-Code 10.3. ASCH-Code
........22222usesssssennensnensnnnnnnnennnnnnnneeeeenneneenn nenn .............uuueeneeeeeeneeeseeeneenennnnnnnnnnneeneneee nennen
70
79 79
Einleitung Immer mehr Menschen müssen sich heute mit Computertechnik, insbesondere mit
Obwohl BASIC eine sehr einfache Programmiersprache ist, die mit wenigen Befehlen auskommt, können damit lei-
wird der Leser in die Programmiersprache BASIC eingeführt. BASIC gehört heute an
einandersetzen.
stungsfähige Programme werden. Nach einer ausführlichen
vielen Schulen bereits zum Lehrstoff und ist auch für den Laien eine sehr leicht verständliiche Programmiersprache, die in wenigen Stunden erlernt werden kann.
rigkeitsgraden angewendet.
der Programmierung bzw. Software, ausMit Hilfe dieses
Buches
geschrieben Beschreibung
sämtlicher BASIC-Befehle werden diese anhand einer umfangreichen Aufgabensammlung mit unterschiedlichen Schwie-
1. Programmsprachen Grundsätzlich
unterscheidet
man
drei
Arten von Programmiersprachen: Maschinensprachen,
Maschinenorientierte
nensprachen werden die Befehle aus einzelnen Bitfolgen aufgebaut. Ein Maschi-
nenprogramm oder MC-Programm (MC =
Programmsprachen
Maschinencode)
ist
deshalb
meist
sehr
grammsprachen (z.B. BASIC).
unübersichtlich und erfordert einen erheblichen Zeitaufwand. Außerdem muß der Programmierer für
1.1. Maschinensprachen
jeden Maschinentyp eine eigene Sprache erlernen. Maschinenprogramme können
Für jeden Rechnertyp gibt es eine spezielle Programmiersprache, mit der der Rechner gesteuert werden kann. In diesen Maschi-
Als Programmierbeispiel soll eine Addition zweier Zahlen gegeben werden:
(Assemblersprachen),
Problemorientiertte
oder
höhere
Pro-
deshalb nur auf dem Rechnertyp laufen, für den die Programme geschrieben sind.
Beispiel: Lfd.
3+4
Beispiel:
Masch.- | Erläuterungen
Adresse | Code 7000 3E03
7002
|OE04
Assembler-
Erläuterungen
ORG 7000H START
Anfangsadresse
Befehle
Anfangsadresse des Maschinenprogram-
7000
3+4
Mes
Register A mit Wert 3
MVI A‚3
laden
MVIC,A
Register C mit Wert 4
Register A
mit Wert 3 laden
Register C
mit Wert 4 laden
7004
1,81
laden Inhalt Register C zum
ADDC
Inhalt Register C zum Inhalt Register A addieren
E
C
Zum
N \ jalı Register
Inhal
ADI 30H
Zum Inhalt Register A
2
rn
005
6680
7007 _ |4r 7008
CDO00C3|
um
a
a es,
30H addieren
MOV CA
Inhalt Register A
in Register C schieben Inhalt des Registers C
Inhalt Register A
in Register C schieben
SALLO CS00R | Inhalt Register C END
ausdrucken
1.2. Maschinenorientierte
1.3.
Statt einer unübersichtlichen Ziffernverschlüsselung werden hier die einzelnen
Im Gegensatz zu Maschinensprachen oder Assemblersprachen sind die problemorientierten Programmsprachen nicht an einen bestimmten Maschinentyp ge-
Programmsprachen
Befehle mit einer symbolischen Schreibweise geschrieben. Die einzelnen Befehle
bestehen
schen
meist
aus
einer
Buchstabengruppe,
charakteristi-
die
aus
dem
zugehörigen Befehl abgeleitet wurde. Z.B. ADD = Addition. Jeder svmbolische Befehl entspricht in etwa einem Maschinenbefehl, so daß die Anwendung einer Assemblersprache noch zu keiner wesent-
lichen Verkürzung der Programme führt. Als Programmierbeispiel soll hier wieder die Addition zweier Zahlen gegeben werden. Erläuterungen einzelner Begriffe: MVI MOV ADD AD!
8
(Move immediately) Einlesen eines Wertes in das spezifizierte Register (Move) Datenübertragung zwischen zwei Registern Addieren eines Registers im Akkumulator Addieren einer Konstanten zum Akkumulator
Problemorientierte Programmsprachen
bunden.
Bei
diesen
Sprachen
werden
hauptsächlich gebräuchliche mathematische Schreibweisen verwendet. Auf maschineninterne Operationen wie z.B. Speicherplatzbelegungen braucht man hierbei keine Rücksicht zu nehmen.
Zur Programmierung mathematischer und technischer Probleme haben bis heute einige problemorientierte Verbreitung gefunden:
Sprachen
weite
FORTRAN (FORmula TRANslater) FORTRAN wurde 1954 als erste problemorientierte Programmsprache in den USA entwickelt. Diese Sprache wurde auch von mehreren Computerherstellern, haupt-
sächlich von IBM, in verschiedenen Versionen weiterentwickelt. Die einzelnen Versionen werden mit römischen Ziffern gekennzeichnet, wobei die FORTRAN IV heute die modernste Version darstellt.
ALGOL
(COmmon Bussines Orientated Language)
Diese Programmsprache ist hauptsächlich die
kommerzielle
Datenverarbeitung
und für den kaufmännischen Bereich entwickelt worden. Sie erlaubt die Verarbeitung von großen Mengen von Daten.
PL/1
hängige
Entwicklung
des
Dartmouth
College. BASIC ist durch ihren einfachen grammierung im Dialog mit dem Rechner
schaftlicher Institutionen. Sie wurde etwa ab 1960 publiziert.
für
ma-
Formalismus und die Möglichkeit zur Pro-
(AlGOrithmic Language)
Diese Sprache ist eine Gemeinschaftsentwicklung einiger europäischer wissen-
COBOL
Diese zur Lösung von hauptsächlich
thematischen Problemen entstandene Programmsprache ist eine herstellerunab-
besonders für den Amateur-Programmierer geeignet.
Zum Vergleich soll hier das bei Maschinenund Assemblersprache angegebene Beispiel der Addition zweier Zahlen in der
Programmsprache
BASIC
angegeben
werden. Beispiel:
3+4
LETA=3+4 Der Variablen A wird hier das Ergebnis zugeordnet. Die Variable belegt automa-
(Programming Language One)
tisch einen Speicherplatz.
Diese Programmsprache wurde in den letzten Jahren von der Firma IBM entwik-
kelt. Sie vereinigt die Vorteile von FORTRAN und COBOL in einer Programmspra-
che und ist damit für technische sowie für kaufmännische Zwecke geeignet.
Aus diesem Beispiel wirdschon ersichtlich,
daß die Programmierungszeit bei problemorientierten Programmsprachen wesentlich einfacher und kürzer ist. Zusammenfassung
BASIC
(Beginners All Purpose Symbolic Instruction Code)
Primär-Programme
werden
geschrieben
in:
Problemorientierten Programmsprachen (z.B. BASIC)
Assembler-Sprachen (z.B. 8080-Assembler)
|
Compiler
Assembler-Programme
(bei BASIC Interpreter)
Übersetzung Maschinen-Programme
|
Assembler gleichbedeutend mit Assemb-
Vor- und Nachteile:
Aus chen
problemorientierten entstandene
belegen
mehr
Programmspra-
Maschinenprogramme
Speicherplatz
und
haben
eine längere Programmlaufzeit (ca. 2- bis Afach) als solche, die aus AssemblerSprachen entstanden sind.
Dafür ist bei problemorientieren Sprachen
die
Programmerstellung
kürzer
und
die
Programmierung einfacher. Auch ist das geschriebene Programm (LISTING) wesentlich kürzer. 1.4.
Assembler, Compiler und Interpreter
Da Rechenautomaten nur ihre eigene Maschinensprache verstehen, müssen die Programme, die in einer symbolischen
oder problemorientieren Sprache geschrieben sind, vor der Verarbeitung in den Maschinencode übersetzt werden. Dieser Vorgang wird durch den Automaten selbst
mit
Hilfe
besonderer
Übersetzungspro-
gramme, den sogenannten „Übersetzern“,
durchgeführt.
Diese
Übersetzungspro-
gramme sind meist recht umfangreich und kompliziert; sie werden beim Hersteller mit großem Aufwand erstellt. Man unterscheidet folgende Übersetzer:
lersprache verwendet.
Compiler: Übersetzung
schriebenen nencode.
Übersetzung schriebenen
nencode.
Im
10
ge-
Gegensatz
in den
zu
den
Maschi-
reinen
testen eines Programmes denkbar einfach. BASIC ist eine Interpretersprache (s. auch 2.2.).
1.5. Programmabläufe (Flußdiagramme) In
Programmablaufplänen
werden
Re-
chengänge in Form von logischen Operationen dargestellt. Dabei erhalten die einzelnen Operationen verschiedene Kästchen, die durch Pfeile verbunden sind.
Die Art der Operationen wird durch eine Beschriftung im Kästchen angegeben. Die wichtigsten Symbole für die Programmablaufpläne nach DIN 66001 sind der
folgenden
geben.
Wort
problemorientiert
lauffähiger Programme keine Übersetzungsläufe erforderlich. Damit gestaltet sich das Programmieren und das Aus-
nencode.
das
der
Programme
rungsbeispiele
heute
ge-
in den Maschi-
Compilersprachen sind zum Erzeugen ab-
in
wird
problemorientiert
Interpreter:
Assembler: Übersetzung der maschinenorientiert geschriebenen Programme in den MaschiHäufig
der
Programme
Übersicht
angegeben.
In Abschnitt 6 sind für einige Programmie-
Programmabläufe
ange-
oO
Allgemeine Operation
(Arithmetische Befehle,
Übertragungen)
—
Unterprogramm
JOD
Programmodifikation
Operation von Hand
Verzweigung (Abfragen von Bedingungen) Zusammenführung
OÖ Co
|
Übergangsstelle
Lochkarte
OD
Band
Grenzstelle Plattenspeicher
—
Bemerkung
Eingabe/Ausgabe-
BlattanschlußMarkierung
Operation
Schriftstück
2. Einführung in BASIC Die zur Lösung von mathematischen Problemen entstandene Sprache BASIC (Ab-
kurzzeitig an das Rechenwerk
kürzung für Beginners ALL Purpose Symbolic Instruction Code) ist eine herstellerunabhängige Entwicklung des Dartmouth
schwindigkeit des Rechenwerkes hat der Benutzer den Eindruck, er sei der einzige,
College. BASIC besteht aus algebraischen Symbo-
len, Satzzeichen und einfachen englischen Begriffen für die Befehle. Die einzelnen
Begriffe werden mit einem aus der Algebra bekannten Formalismus verknüpft. BASIC ist weltweit bekannt und die zur Zeit wohl am leichtesten verständliche, moderne Programmiersprache, die in wenigen
Stunden erlernt werden kann. Früher wurde BASIC hauptsächlich
in
des Com-
puters angeschlossen. Durch die hohe Ge-
der das System benutzt. Heute gibt es bereits für wenig Geld lei-
stungsfähige BASIC-Interpreter für Mikrocomputersysteme, so daß man heute auf
Time-Sharing-Verfahren,
zumindest
den Amateurprogrammierer, kann.
2.1.
Besondere
BASIC
für
verzichten
Eigenschaften
von
rechenanlage durch viele Benutzer, die z.B. mit einem Datenmodem über Telefon-
Leicht erlernbarer Sprachumfang Einfache Programmierregeln Selbsttätige Syntaxprüfung Keine Übersetzungsabläufe Direktes Korrespondieren mit dem Rechner während der Programmierung
leitungen mit dem Computer verbunden sind. Jeder Benutzer ist periodisch nur
und des kehr)
Time-Sharing-Systemen verwendet. Time-
Sharing
bedeutet die gleichzeitige
Inan-
spruchnahme einer leistungsfähigen Groß-
Ablaufes
(On-line
Dialogver-
11
e Umfangreiches mathematisches Paket e Datenfelder und Matrizen zur Speicherung von Testparametern
2.2. Zeitsparendes Programmieren und Austesten
2.3. Sprachumfang Der gesamte
Datenfelder und Matrizen
Programmschleifen Programmverzweigungen
Unterprogramme Kommunikation mit dem Operator Programmabbruch
gensatz zu reinen Compilersprachen sind
zum Erzeugen ablauffähiger Programme keine Übersetzungsläufe erforderlich. Der Interpreter übersetzt den in der höheProgrammiersprache
Compiler-Programm
gleichzeitig
benötigt
immer
einen oder mehrere Übersetzungsläufe zum Erzeugen eines ablauffähigen Maschinenprogrammes. Die Korrektur von Programmierfehlern oder Programmänderungen
erfordert
stets
Kommentar
eingegebenen
Befehl direkt und veranlaßt dessen Ausführung. Ein
von BASIC
Mathematische Operationen
BASIC ist eine Interpretersprache. Im Ge-
ren
Sprachumfang
läßt sich in folgende Elemente unterteilen:
weitere
Überset-
Durch
die
Anwendung
von
Programm-
schleifen, meßwertabhängigen Verzweigungen und Uhnterprogrammen erlaubt
BASIC einen zweckmäßigen und Speicherplatz sparenden Aufbau von Programmen.
Eine
wirkungsvolle
Unterstützung
stellt das mathematische Paket dar, wel-
Beim Interpretersystem hingegen gestaltet sich das Programmieren und das Aus-
ches die Lösung von arithmetischen, trigonometrischen, exponentiellen, logarithmischen und logischen Problemstellungen gestattet.
einfach,
2.4.
zungen.
testen
eines
Prüfprogrammes
da der Interpreter auch
denkbar
die Auf-
gaben des Übersetzers, der Ablaufsteuerung und eines wahrnimmt.
Fehlersuchprogrammes
BASIC-Programme werden bereits beim Programmieren auf Syntaxfehler überprüft. Logische Fehler, die beim Ablauf er-
kannt werden und Syntaxfehler werden nach ihrer Art spezifiziert und am Blattschreiber oder Datensichtgerät unmittel-
bar ausgegeben.
Sie können
sofort be-
richtigt werden.
Im On-line-Dialogverkehr können Programmteile gelöscht, eingefügt oder ersetzt werden. Prüfprogramme können jederzeit ganz oder teilweise aufgelistet und auf Lochstreifen, Magnetband oder andere Speichermedien übertragen werden. 12
Programmieren in BASIC
Das Programmieren in BASIC erfolgt über eine sogenannte Programmierkonsole im On-line-Verkehr, d.h. der Programmierer arbeitet im direkten Datenverkehr mit dem
Rechner. Der besondere Vorteil der Online-Programmierung ist, daß Syntaxfehler und
Verstöße
gegen
die
Programmier-
regeln sofort erkannt werden und am Ein-/ Ausgabegerät nach ihrer Art spezifiziert werden. Sie können dann sofort berichtigt
werden.
Der On-line-Dialogverkehr gestattet einfaches und problemloses Arbeiten
der
Anlage.
Jede
ein mit
Programmänderung
kann wegen des interpretativen Charakters von BASIC direkt durchgeführt werden.
Sofort
nach
der
Zeilenkorrektur
ist
Programm wieder lauffähig.
Wie
in anderen
bekannten
das
Programmier-
sprachen werden BASIC-Programme zeilenweise geschrieben. Je nachdem, ob die Zeilen numeriert werden oder nicht, werden zwei Programm-Ausführungsarten
unterschieden:
Deferred mode (mit Zeilennummer) Prüfprogramme werden gewöhnlich
in
„deferred mode“ geschrieben. Dabei werden die Anweisungen mit einer Zeilennummer versehen und im Kernspeicher
abgelegt. Hinter einer Zeilennummer können eine oder mehrere Anweisungen stehen. Die Anweisungen sind dabei mit dem
Zeichen
\ zu trennen.
Beispiel:
23 LETA = 15 \ PRINT A
Immediate mode (ohne Zeilennummer) Im „immediate mode“ werden Anweisun-
gen und Befehle nicht im Arbeitsspeicher abgelegt, sondern bei Betätigen der Taste „Wagenrücklauf“ (Return) sofort ausgeführt. Das Ergebnis kann unmittelbar ausgegeben werden.
Während die Anweisung selbst gelöscht wird, bleibt das Ergebnis der Operation für eine spätere Verwendung gespeichert. Diese Ausführungsart ist besonders vorteilhaft, z.B. bei der Kontrolle von Meß-
ergebnissen und bei der Abfrage des Wertes einer Variablen. Beispiel:
PRINT A
25
.
(Wagenrücklauf)
Der Rechner druckt nach der Anweisung PRINT A den Wert der Variablen A, der hier 25 beträgt, aus.
Das sich im Kernspeicher befindliche Pro-
gramm wird dabei nicht zerstört.
2.5. Zusammenstellung der Anweisungen und Befehle in BASIC
LET DATA READ RESTORE DIM FOR...NEXT IF... THEN GOTO GOSUP RETURN INPUT PRINT PRINT TAB PRINT USING REM Obwohl
gige
BASIC
OPEN CLOSE PRINT INPUT OVERLAY CHAIN LIST SAVE REPLACE APPEND RENAME NEW BELETE OLD RUN eine
herstellerunabhän-
Programmiersprache
darstellt,
hat
fast jeder Computerhersteller eine eigene
BASIC-Version erstellt. Diese Versionen unterscheiden sich aber vom OriginalBASIC meist nur in ganz wenigen Punkten, so daß ein Umsteigen auf eine andere BASIC-Version keinerlei Schwierigkeiten verursacht. Jede Maschine besitzt eine Bedienungsanleitung (Manual), in der die jeweilige BASIC-Version
genau
beschrie-
ben ist. Die in diesem Buch beschriebene BASICVersion läuft auf einem Minicomputer der Firma Digital-Equipment-Corporation (Abkürzung DEC). Diese Firma ist eine der führenden Kleinrechnerhersteller in der Welt. Alle angegebenen Beispiele wurden auf einer Maschine vom Typ PDP 11/05 programmiert und getestet. 13
3. BASIC-Sprachelemente
len O bis 9 sowie einige Sonderzeichen. Zusammenstellung der Schriftzeichen: Buchstaben und Ziffern werden auch
Der Zeichenvorrat von BASIC umfaßt alle Großbuchstaben des Alphabetes, die ZahAR
alphanumerische Zeichen genannt.
CEREFGHIJKLMNOFR.RSTUVUXYZ
IBESESAKATRKCH. tH= LING
& %
4
ng
123456789060
3.1.
Konstanten
Variable in einem Programm beliebig viele Werte annehmen.
Die beiden gebräuchlichsten Typen von BASIC-Konstanten sind Integer-Konstanten (Festkomma-Konstanten) und RealKonstanten (Gleitkomma-Konstanten). Ein Integer ist eine ganze Zahl, d.h. ein Wert, der keinen Bruch oder Dezimalpunkt ent-
hält. Eine Konstante 7, -16, 19.4.
ist also
eine
Zahl
wie
Die Zahl 128.5x 10* wird in BASIC folgen-
dermaßen dargestellt: 1.285E6
Darin ist 1.285 die Mantisse und 6 der Exponent. Mantisse und Exponent können positiv oder auch negativ sein. Mit dieser Darstellungsart können sehr große und sehr kleine Zahlen dargestellt werden.
Bei
den
üblichen
BASIC-Betriebssyste-
men liegt die Rechengenauigkeit zwischen
6 und 12 Stellen. 3.2.
mit einem
Buchstaben,
kennzeichnet, Beispiel:
Einfache Variable wer-
Buchstaben
oder einem
gefolgt von einer Ziffer, ge-
A, A3, B5.
Damit können in einem BASIC-Programm
bis zu 286 Variable definiert werden. 3.2.2.
Indizierte Variable
Zur Bezeichnung der einzelnen Elemente oder Felder in ein- bzw. zweidimensiona-
len Datenfeldern
(Listen
bzw.
Matrizen)
werden indizierte Variable verwendet. A (4) bezeichnet z.B. das vierte Feld der Liste A.
A (4,7) bezeichnet z.B. das siebte Feld in der vierten Reihe des zweidimensionalen Datenfeldes oder Matrix A. Der erste Para-
meter in der Klammer gibt stets die Zeile,
Variable
3.2.1.
den
der zweite die Spalte einer Matrix an.
Einfache Variable
Im Gegensatz
zur Konstanten
Spalte 1
kann
eine
Beispiel:
Matrix A (4,5).
Spalte 2
Spalte 3
Spalte 4
Spalte 5
Zeile 1
A (0,0)
A (0,1)
A (0,2)
A (0,3)
A (0,4)
Zeile 2
A (1,0)
A(1,1)
A (1,2)
A (1,3)
A (1,4)
Zeile 3
A (2,0)
A (2,1)
A (2,2)
A (2,3)
A (2,4)
Zeile 4
A (3,0)
A (3,1)
A (3,2)
A (3,3)
A (3,4)
Einfachen sowie indizierten Variablen können im Programm nur numerische Werte
zugeordnet
werden.
Sollen
einer
Variablen Zeichen oder Zeichenketten zugeordnet werden, so müssen Stringvariable verwendet werden.
3.2.3.
Stringvariable
chen oder Zeichenketten, z.B. Namen zugeordnet werden.
Beispiele von Zeichenketten sind:
Dem
A5$(3,2)="ARC" zweidimensionalen
Feld
mit
dem
Namen A5% wird in der 3. Zeile und der 2. Spalte die Zeichenkette ABC zugeordnet. Mit dem Zuordnungsbefehl LET werdem definierten Feld die Zeichen ABC abgespeichert (s. auch 3.4.8.).
3.3.
Mathematische Ausdrücke
Mathematische Ausdrücke werden in BASIC ähnlich wie in der Mathematik aufgeschrieben. Dazu sind in BASIC arithmetische
"ARCH" *%
LET
den im Arbeitsspeicher des Rechners auf
Eine Stringvariable ist eine indizierte Variable, die von einem3-Zeichen gefolgt wird. Einer Stringvariablen können Zei-
“
Beispiel einer Zuordnung:
und
mathematische
logische
Operaten
Funktionen
sowie
definiert.
Bei
der Berechnung wird automatisch der Rang der einzelnen Operationen berück-
"
"RASICEFROGRAMM"
sichtigt, bei gleichem Rang wird von links nach rechts gearbeitet. Nachfolgend wer-
Die Zeichen sind dabei jeweils zwischen Anführungsstriche zu setzen.
den die in BASIC üblichen Operaten sowie
Funktionen aufgezeigt.
3.3.1. Arithmetische Operatoren BASIC-Symbol
Beispiel
Bedeutung
u
A”B
Potenzierung
* /
A*’B A/B
+
A+B
_
A-B
3.3.2.
Priorität 1
Multiplikation Division
2 2
Addition
3
Subtraktion
3
Logische Operatoren
BASIC-Symbol
Mathematisches Symbol
Beispiel
Bedeutung
=
A= A
= m.
> +
A>=B AB
B B
A kleiner oder gleich B A größer B A größer oder gleich B A ungleich B 15
3.3.3.
Mathematische Funktionen
Funktionen SIN
COS ATN SOR EXP
LOG ABS INT RND
(X)
Bedeutung sinX im Bogenmass
(X) (X)
cosX im Bogenmass ArctgX als Winkel im Bogen-
(X) (X)
mass im Bereich + n/2 Quadratwurzel Exponentialfunktion von X
(X) (X) (X) (X)
Natürlich Logarithmus von X Absolutwert von X Größte ganze Zahl=X Erzeugt Pseudo-Zufallszahlen zwischen O und 1
SGN
(X)
liefert 1wennX>0,
OwennX=0 —1 wennXl=_ Vujte ist ; wobei _-R
°S= 5, Fall 3. Überkritisch gedämpft. Für R? —
4L/C>0, ist die Lösung = K; a
+
K,e*t,
wobei
=
einliest und für die Zeiten (T) von O bis 1
V
OL
R 4L?
K,=-Kı s; _-R_ 2L
=2 L84
Millisekunde in Schritten von 100 Mikro-
1
sekunden
LC
den
Strom
(Il) berechnet.
zweidimensionales Externspeicher
Feld
(z.B.
und
auf einen
Magnetbandcasset-
Rr 1
te) abgespeichert werden.
Zuerst ist ein
4L?
Flußdiagramm
(Bild 4).
LC
/R_1 AL? LC,
zu erstellen
Pro an beschreib Vor einer Programmbeschreibung
Erläuterung der Kurzzeichen:
die Bedeutungen
V = Gleichstrom in Volt
einer sogenannten Variablenliste.
i
Die
Werte T und I sollen im Kernspeicher in ein
= Stromstärke zur Zeittin Ampere
der verwendeten
blen erläutert werden.
R = Widerstand in Ohm
A (10,1)
.
müssen Varia-
Dies geschieht in
In dem zweidimensionalen Spei-
C = Kapazität in Farad
cherfeld
L = Induktiver Widerstand in Henry
Zeiten und der Ströme abgelegt.
w = Kreisfrequenz
R
w=2:.n.f f =FrequenzdesSchwingkreisesinHertz Es
soll
nun
ein
Programm
geschrieben
die Werte
der
Variable für den Wert des Wider-
standes. Variable für den Wert der Induktivität.
L C
werden, das die Werte für R, L, C und V
werden
Variable für den Wert der Kapa-
zität.
T-Schleife
|
Berechnun
Fall
1 B
|
Berechnun
Fall
_2 ’
|
u
Berechnun
Fall
3
|
Drucken 71
chleifen
Ende
Bild4
Flußdiagramm 49
V
Variable für den Wert der Gleich-
P
Variable für den Wert der Zahl n. Variable für die Zeit Variable für den Wert des Stro-
spannung.
| W
meinsamen FOR-NEXT-Schleife. Dies hat zur Folge, daß in jedem Schleifendurchlauf eine Berechnung des Ausdruk-
kes R?-4:L/C durchgeführt werden muß
mes.
und dafür Zeit benötigt wird. Andererseits wird das Programm in der vorliegenden
Variable für den Wert einer Zwi-
Form kürzer.
schenrechnung.
Nach der Eingabe sämtlicher Kreis-Para-
meter wird der Ausdruck R?-4:L/C be-
Für Anwendungsfälle, bei denen die Rechenzeit eine Rolle spielt, müssen 3 FOR-
NEXT-Schleifen aufgebaut werden, die in
rechnet und ausgewertet. In Abhängigkeit vom Ergebnis erfolgt die Berechnung des
Abhängigkeit von Ergebnis R?—-4:L/C an-
und
rechnung durchgeführt.
entsprechenden die
Falles.
Berechnung
LIST RL.C 10 20 30 40 0 60 79 80 90 100 119 120 150 160 170 200 210 2RO 230 300 310 320 400 410 420 430 440 450 460 500 510 320 5350
erfolgt
in einer ge-
4F07= JUL=78
72 RASIC
gesprungen
werden.
In
der
jeweiligen
Schleife wird dann nur die zugehörige Be-
Um bei den einzelnen Berechnungen die Rechenausdrücke nicht zu umfangreich werden zu lassen, erfolgen einzelne Teil-
REM RLC-KREIS rechnungen, z.B. für @, K1, K2, si und 32. FRINT "EINGABE VON RrLlsC,V" FRINT "R="3 (S. Seite 53.) INFUTR FRINT "L.="% INFUT L. FRINT "C#"} INFUT C FRINT "Vety INFUT UV FRINT LET F=3.1415 FOR T=1,000000E-04 TO 5:.000000E-03 STEF 1.000000E-04 IF RUR-AK./C=0O GO TO 300 IF RT2-4AXL/CHO GO TO 400 REM FALLI LET W=SORCL/CLKCI-RT2/CAKL.U2II LET TeV/CWKLIKEXFCORK-L/CEKLIKTIKSINCUXKT) 60 TO 500 REM FALL:2 LET T=V/LRKTKEXFORK-1L/CIKLIKT 60 TO 500 REM FALLS LET KIL=EVK- 1/7 CHKLKRSOR CR" RZ CARL. EI 1 /ULKROI ID LET K2=K1K-1 LET S=SQORCRT2/CAXL"2I-L/CLREI)I LET SI=RX-1L/C2KLI-S LET S2=RR-1/C2XxL)+5 LET I=KIKEXFCSIKTIHKZIREXFOSZKT) LET ACTXx10,0)=T LET ACTX1O:1Dd=I FRINT Trl NEXT T
REALY
50
Die Auswertung
Oszillierend: Fall 1 (Schwingfall)
Rt LE
RLININHI EINGABE 150
ker
er
=?
Kritisch gedämpft: Fall 2
VON
Rylst>V
23
000001
v:715 T IN MSEC
I
4:3850010E-03
2: 900000E-04 3.0000090E-04 4. 000000E-04 2, 000000E-94 65.0000 00E-04 ?7s009090E-04 3:.0D0OOOOOE-OA 9.090000E-94 1.090000E-03 1, 1000008 -03 1, 29090009E-03 39 CQH9E=-03 1.20 0009E-03 1.5000909E-03 1.0 0G0O9E-03 1. ?700000E-0%3 1.800000E-03 1: 990990E-03 2, 900000E-03 2, 1000600E-0%83 2200000 23 2 B00000E-03
2.2082 30E-03 »0132434 «O1 Y1 :O1F1752 «0210439 0221382 «0224614 0220405 OP 23 «0191954 :O1L671 «0141964 «6111548 2. BI IEFOE-03 4.54 7580E-08 1s211300E-03 =2+001530E-03 -4,2972280E=03 = ODE-03 IT IYTFOE-GS 6118478 + 0132403 0141356 -.6145289 0144323 - 01382719 =.01288233 =.0113357 =9,876000E-03 7 PFEOIYDE-03 =, 2 LO240E=03 =3./33300E=93 =-1.580240E-03 3 382570E-04 2.9339 90E-03 4:.354060E703 5: F42270E-03 7«3650390E-03 8,.278800E-03 3.979110E-03 9.354130E-03 7.407570E703
2, 700000E-03 2,200000E-03 2.900000E-03 3.900000E-03 3.100000E03 3.200000E-0%3 3. 300000E-0% 3.400000E-03 3,500000E-03 3.600000E-0% 3.700000E-03 3.800000E-0% 3. 900000E-03 4.000000E-03 4.100000E-03 4.200000E-0% 4.300000E-03 4. A0VOO0E-03 4,500000E-03 4, b00000E-08 4.700000E-03 4.800000E-03 4,900000E-03 5.000000E-03
9.,153380E-03 8.614800E-03 7:823170E-03 6:816490E-03 2 6BF7EIOEr-OR 4:.333980E-03 2953130603
BASIC.
78
EINGABE VON Rorl.sCrV R IN OHM»L. IN HENRY>C R =? 1200
INA
1: 00900090E-04
07=- JUL
FARAU»Y
v
IN
VOLT
35 000002
=? r
IN
15 IN
MSEC
1.000000E-04 2. 000000E-04 3.000000E-04 4.009000E-04 3 H0II000E-04 60H 000E-04 7.9009000E-04 8.200000E-04 9,0090900E-04 1.0900900E-03 1.1090000E-03 1. 200000E-03 1+.300000E-03 1.400000E-03 1, 500000E-03 1,600000E-03 1, F700000E-03 1+.800000E-03 1.900000E-03 2.000000E-03 2. 100000E-03 2,200000E-03 2, 300000E-03 2+400000E-03 24 500000E-03 2. S500000E-03 27000900803 2800000503 2: 900000E-03 3.000000E-03 3.100000E-03 3.200000E-03 3.300000E-03 3.400000E-03 3.500000E-03 3.650 0000E-03 3+ 700000E-03 3.800000E-03 3.900000E-03 4.0909 9000E-03 4.100000E-03 4.200000E-03 4.300000E-03 4,ADOODOE-03 4,60 0000E-03 4. 7000600E-03 4.,800090E-03
I
INA 36519640803 4 1AAPLOE-O3 7.8627 70E-03 8:987370E-03 9,676830E-03 +O100493 OH LOLF22 «0101705 «0100323 7.813010E-03 9.,538820E-03 7,22 2000E=03 9.8778 10E=-03 3,554740E-03 8.208380E-03 7.8632 70E-03 7.523340E-03 719 11P0E=03 6:3585F0E-03 6.9366 20E-03 6 THOHOE-OZ 3+9671A0E-03 367 0000E-03 3 A2ASFOE-O3 +1 70660803 49279 90E-03 4, 6IH2R0OE-03 4.,4753000E-03 4.263930E-03 I OHRHROE-0Z 3.8705 70E-03 36876 /DE=03 33413250E-03 3.347010E-03 3.1886400E-03 3.,0375450E-03 289. 3820E-03 2.756780E-03 2: 6264220E-03 2+:501820E-03 2: 383320E-03 24: 270AROE-O3 2162870E-03 2:060A00E-03 1-.9682720E=03 1,.859800E-03 1.781220E-03 1,6658 30E-0%
51
Überkritisch gedämpft: Fall 3 (Kriechfall) RLE
07-JUL-78
EINGARE ROIN
KR=7° = C=77 v=? T
IN
VON
OHMpyL.
2500 235 000002 15
Kyl»CrV IN HENRY»C
MSEG
1:0009000E-04 2s000000E-04
3:.000000E-04 40099 00E-04 3:.000000E-04 5.0000900E-04 7:.0900009E-04 3.0009000E-04 9.90000DE-04 1.9009000E-03 1.100000E-03 1.200000E-03 1,39 090E-O3 1. 400900E-03 1,.5000090E-03 1,5R000DE-03 1+ F00009E-03 1+800009E-03 1+900900E-03 2. 6G00900E-03 2,.1009000E-03 2 200000E-03 2: 300000E-03 2+A90000E-03 2 500000E-O3 26H IO099E03
2: 700090E-03 2:B00000E-03 2:PVOOO0O9HE-03 3:000000E-03 3.1000090E-03 3,2000090E-03 3. 3000099E-03 3:40 00O00E-O8 3.5000009E-03 3.60 0099E-03 3:.700009E-03 “ BO0O0O0OOE-03 «POOODOOE=08
4.200009E-03 4:30 0009E-03 4.460000E-03 24.500000E- =03 4.6H00000E 4, FOO0909EO7 4.800000E-0%
52
IT
IN
FARAN»
INA 2 055320E-03 3201 70E-03 5,19 1090E-093 5.66590E- B
5,1759306-03 3:073400E703 4.971470E-03 4.970880E-03 4.771960E-03 2,6 FPABBOE-O3 4.537 96B0E-03 2 AB63B0E-03
eo... 4.131870E703 4. 047IH0E-03 3,9549 6H0E-03 3.884140E-03
38049 70E-03 34 727410E=03 3, H51L430E-03 3.47 7010-03 3.504 100E-03 3432670603 3 36.2 700E=03 3: 294150E-03 3+227020E=03 3, 161240E-03 3,09658B00E-03 33033580E-03 227 1B40E=03 +9 11270E-03 283197 30E=03 2.79 3800E-03 2: 736850E-053 2 6BLOH0E-03 2A LOE-OS 2327 2880E-03 2.520440E-03 2 HHPOHOE-03 2:418740E-03 2369430503
Des weiteren soll der Kurvenverlauf I=f(T) in einem
Diagramm
dargestellt
werden.
Für die einzelnen Kurvenpunkte kann das Zeichen * verwendet werden. Dazu ist die Zeile 520 wie folgt zu ändern: 5320
FRINT
TARCINTCIK20004.,5)4409)
58"
Statt des Ausdruckes der einzelnen Zahlen
für T und | wird nun in Abhängigkeit von | ein *» gedruckt. Der PRINT-Befehl (Zeilen-
vorschub) entspricht hierbei einer Zeiteinheit. Das Zeichen * wird mit einer Tabulatorfunktion
ausgedruckt.
Der
I-Wert
wird
über die INT-Funktion zur Intergerzahl gemacht. Gleichzeitig erfolgt eine Verschiebung um 40 Leerzeichen zur Bildmitte, um
dadurch auch „negative“ Ströme (Stromrichtung
kehrt um)
darstellen zu können.
Der Ausdruck ist ca. um einen Faktor 3,2 verkleinert abgebildet.
u...
Bild 5
6.11.
ROULETT
Mit dem in den meisten BASIC-Versionen vorhandenen Zufallsgenerator können auf ideale Weise
Zufallszahlen
den. Gleichzeitig Auswertung dieser werden. So z.B. Systemverkäufern
erzeugt
wer-
kann mit BASIC eine Zahlen vorgenommen lassen sich viele von angebotene Roulett-
systeme, die immer viel Gewinn versprechen, untersuchen und auswerten. Spä-
testens hier wird der Käufer einsehen, daß mit dem versprochenen Gewinn nicht gerechnet werden kann. Der Rechner erlaubt es, auf relativ einfache Weise die Systeme an unendlich vielen Zufallszah-
len zu erproben (in Permanenzen). Und
der Roulettsprache hier wird dann in
jedem Fall ein Ausgleich stattfinden, so daß der Zero-Vorteil der Bank zum Tragen kommt. Als Beispiel
sollen
zuerst
Zufallszahlen
im Bereich 0 bis 36 (Roulettzahlen) erzeugt werden. Anschließend soll der Zufallsgenerator auf seine statistische Verteilung untersucht werden. Dies soll so geschehen, daß z.B. alle vorkommenden
Nullen
und die vorkommende MANQUE- und PASSE-Verteilung aufgezählt werden. Bei einer
großen
Zahl
von
Würfen
(in
der 53
Roulettsprache Coups) muß eine in etwa gleichmäßige Verteilung herauskommen. MANQUE Zahlen 18 Mit der Variablen A wird ein Zähler aufge-
10 20 30
baut, der die Anzahl der Zahlen, die größer als 18 sind, aufzählt. Die Variable B zählt die Anzahl der Zahlen, die kleiner als 19 sind. Die Variable C zählt alle Nullen (Zero).
LET X=INTC37KRNUCH)) FRINT X5 GOTO 10
RUNNH i 49% DD 145 10.33 24 28 20 25 2 23 18 31 26 11 32 18 En nd 7.34 36 29 36 1,7 28 10 17 8 STOF AT
an 13.28 14 ıil 13 12 23 31 194 240 Lil 27 2 34 8 35 24 i2 9 2 12 12 24 2 36 14 ss 20 0 31 si 19 13 23 21 28 13 1.3 1 1118 8 24 2 13 21 1435 28 32 8 23 21 S2 1 14 35 6 2 0 A 21 1 18 21 3 13 1224 33 30 7 3219 3 34 9 95 10142420 ia 2 12 12 8 2 9 34 32 27 26 16 10 27 3a 23434 26 80 16 1 26 12 10 16 ? & 12 14 7.29 303230 30 28 2 BR 3 33 dd ee 6 4 20 1 28 3 ap a A
REALY
LIN-ST ROULET
RUN O6
JU.-78
BASIC
10 15 20 30 40 50 60 70
REM ROULETT RANLOMIZE FOR N=1 TO 1000 LET X=INTOSFZKRNEIOID IF xX>18 THEN A=Atl IF X>0 THEN IFOXKEULY THEN BeBtl IF X=0 THEN C#HC+l NEXT N 80 FRINT "ZAHLEN VON! 90 FRINT "1-19", 9-38’, 0° 100 FRINT 110 FRINT A»BsGC 120 ENI
Als weiteres Beispiel soll eine echte Per-
manenz
ausgedruckt
fachkeitsgründen
wird
werden. wieder
Aus die
EinMAN-
QUE- und PASSE-Verteilung ermittelt. Die 54
ROULET
06- JUL.- 78
ZAHLEN
VON
1=18 478
ZAHL.EN 1-18 473
19=3& 493
VON 14
einzelnen Zufallszahlen sollen spaltenrichtig ausgedruckt werden. Um ein über-
sichtliches Druckbild zu erreichen, wird die PRINT-USING-Anweisung angewendet.
LIST
ROULET
10 15 20 30 40 50 60 70
REM RAN FOR FRI NEX FRI FRI FOR
BAS Ic
05- JU1.-78
ROULETT LOMIZE N=1 TO 5 NTUMOO Rt TN NT NT N=1 TO 100
80 LET X=INTC3Z7XKENDCOI) 90 IF X=0 THEN IF xX:17 THEN FRINT USING "- #"rX9 # u, 100 IF X>18 THEN FRINT x FRINT " X 110 IF X>18 THEN FRINT USING KOX N u 120 IF X=0 THEN FRINT
125 LE T A=At1 130 IF A=5 THEN 140 NE XTN
FRINT
\
LET
N
FRINT
y
A =)
READY RUN MR 21 24
2 3 8
19 27 23 22
16
RAS ME
MR 6
30
KOX
14 14
6.12.
33
& =) 17
30 36
24
16 9 15 8 10
M
F
27 KOX
20
3
15 8
34
16 14 17
M
>4 30
10
17
12i 4 5;
06- JUL-78
11
13 12
24 22 xOX
von
a 33
32
16 3% 23 33 9
26 26 KOX
Kreis-
Hyperbel-Funktionen
und
Im BASIC sind an trigonometrischen Funk-
tionen nur Sinus, Cosinus und Arcustangus eingebaut. Andere trigonometrische Funktionen müssen mit Hilfe anderer Funktio-
26
29 23
34 28 21 7
12
13
4
34
Berechnung
F
35 34
30 25
BIS en
ROULET
34
nen programmiert werden. Nachfolgend werden die Formeln dafür angegeben. arcsin: arccos:
ATN(X/SQR(1-X+X))
arccot:
ATN(1/X)
sinh”):
ATN(SOR(I-X+X)/X) (EXP(X)-VV/EXP(X))/2 55
cosh”): tanh"): coth”’:
(EXP(X)+1/EXP(X))/2 (EXP(2xX)-1)/(EXP(2-X)+1) (EXP(2xX)+1)/(EXP(2»X)-1)
arcsinh: LOG(X+SQR(X*X+1)) arccosh: LOG(X+SQR(X+X-1)) arctanh: LOG((1+X)/(1-X))/2
arccoth:
Es soll nun als Beispiel für verschiedene Werte von X der Hyperbelsinus sowie der Hyperbelcosinus berechnet werden. An-
schließend soll die mathematische chung
LOG((X+1)/(X-1))/2
cosh?X - sinh?X = 1
LEST SINH 10 11 12 13 20
30 31 40 41 sO 609
272NOV-78
PEGAMAT BASIC/CAFS,
PRINT "BERECHNUNG VON SINH(X) UND COSH(X)* PRINT PRINT "EINGABE VON X "#5 \ INFUT X LET Y=X PRINT
LET X=(EXFOX)I-L/EXPCX))/2 LET Y=CEXFCOYI+L/EXFOYIIZZ FRINT "SINH(X)="5X PRINT "COSHOXI="HY LET Z=Y"2-xX"2 FRINT "COSHT2CKI-SINH"TRCK)="5Z
READY
BERECHNUNG EINGABE
VON
VON X
SINH(X)
BERECHNUNG EINGABE
VON
VON X
UND
COSHIX)
UND
COSHCX)
7,5
SINH(X)= „321095 COSH(X)= 1.127626 COSHTACRI-SINHTZCK)Ee
1
SINHCX) ?
,.99
SINH(X)= 1.159829 COSH(X)= 1.531405 COSHTZORI-SINHTZCKIE
56
V00502
1
Gilei-
bewiesen werden.
6.13.
Mondlandung
spiel berechnet. Zuwenig Gegenschub läßt die Mondfähre auf dem Mond zerschellen,
Nachfolgend soll das Listing eines interes-
mit zuviel Gegenschub entfernt sich die
santen Spielprogrammes angegeben wer-
Mondfähre wieder vom Erdtrabanten. Auf eine Programmbeschreibung soll hier verzichtet werden. Bei einer konsequenten Durcharbeitung der vorhergehenden
den. Mit diesem Programm kann eine Mondlandung ziemlich naturgetreu nachvollzogen werden. Mit komplizierten Formeln werden hier Anziehungskräfte des
BASIC-Beschreibung sowie der Beispiele sollte das Programm keine Schwierigkei-
Mondes und Gegenschub der Bremsrake-
ten der Mondlandefähre
im Zusammen-
ten mehr enthalten.
9n
10 20 25 30 40 50 0 70 71 120 170 210 211 220 225 230 235 240 250 260 270 »10 320 330 340 350 360 370 375 380 4189 420 430 440 510 Sl 20 530 >40
S50 352 360 562
570
og 2
el
ri
REM MÜNILANDUNG FRINT "FROGRAMM ZUR MONDLANDUNG" FRINT PRINT "SIE HABEN 160009 EINHELTEN TREIBSTOFF" FRINT "ZUR ARBREMSUNG KOENNEN SIE EINE EINGABE ZWISCHEN" FRINT "8 UNI 200 EINHEITEN WAEHLEN" FRINT \ FRINT "REGINN" FRINT N FRINT "ZEIT (SEC) "+ "HOEHE MID", "GESCHW. CMEH)" 5 FRINT "TREIBSTOFF", "EINGABE EINHEITEN" LET L=0 NS LET A=120 N LET V=1 \ LET M=32500 \ LET N=16500 LET G=1.000000E-03 N LET Z=1+8 FRINT INTA.+,59s INTCAKLOOF.SI/1LOOFINTCUXRZ6004,5) 5 FRINT INTCM-N+.DD "EN INFUT K LET T=10 IF K#0 GO TO 590 IF K=0 60 TO 310 IF K{8 THEN 260 IF Ki=200 60 TO 310 FRINT "NICHT MOEGLICH" sysys "E"5 INFUT K \ 60 TO 230 IF M=-N-1.000000E-037=0 60 TO 410 IF T#1.000000E-03 GO TO 210 LET S=T \ IF N+SKKı=M 60 TO 350 LET S=(M-NIZ/K LET IO=1 \ 60 TO 909 IF Ix=0 60 TO 710 IF Vx=0 60 TO 380 IF J#0 60 TO 810 LET IO=1 \ 60 TO 600 FRINT "TREIESTOFFENDE NACH "5INTCLIS" SEC" LET S=(-V+SOR (VKVHFZKAKGII/G LET V=V+GKS LET L=L+8 FRINT "AUF DEM MOND NACH "SINT(CLIS" SEC" LET W=E3600%V FRINT "GESCHWINUIGKEIT "SINTCWISF" M.F+Hs" IF W>=1 60 TO 550 FRINT "SEHR GUTE LANDUNG! GRATULATION! II" \ GO TO 5909
IF W>=10 THEN 560 FRINT "GUTE LANDUNG ! ABER IF W>=25 THEN 570 FRINT "LANDUNG GERADE NOCH IF
W>=&40
THEN
580
NICHT
GANZ
GELUNGEN"
FERFEKT
\
60
TO
"
\
60
TO
590
590
57
572
573
580 581 570
592 595 00 610 620 630 640 #50 640 7109 720 730 810 820 825 330 8409 850 860 87060 700 905 10 920 930 940 950 1000 1010 1020
FRINT
GO
TO
FRINT FRINT FRINT
"LANDUNG
590
GERADE
NOCH
GELUNGEN
ABER
XMASCHIN
"SORRY FOR YOU» SIE ROHRTEN EINEN NEUEN "VON "SINTCWR.2777)5" FUSE" N GO TO 590 \ FRINT "NEUER VERSUCHT? (EINGABE 1=JAr
KAFUTTITIK"
MONIKRATER"
O=NEIN)*F INFUT RI N IF Ri=1 THEN 60 PRINT \ FRINT "ENDE" \ END LET L.=1.+8 LET T=T-8 LET M=M-SKkkK LET A=I LET VzJ IF 1O=1 60 TO 310 IF 10=3 60 TO 850 IF 8%75.000000E-03 GO TO 510 LET $=2%A/CV+SOR (VRVHRKAKCG-ZKK/MI I) LET IO=2 \ 60 TO 900 LET W=(1-MXG/CZKKI I Z/2 LET $5=MXV/CZKKKCWHSORCWRWFVZ/ZI I IH. OS LET IO=3 \ 60 TO 900 IF Ix=0 THEN 710 GO TO 800 IF J>=0 THEN 310 IF V£i=0 GO TO 310 GO TO 810 LET Q=S5XKK/M IF Q#=0 THEN 1000 LET JEVH+ORS+ZRC-01072) 72-073) 73- (0”4) 74-(Q”5)/5) LET T=EA-GKSKS/2-VKSHZKSK(Q/2+0”276+0"3/12+Q74/20+0”5730) IF I0O=1 60 TO 360 IF 10=2 60 TO 600 IF 10=3 GO TO 830 LET J=V+GXS L.ET I=A-GXKSRS/2-UXS GO TO 930
REALY
FROGRAMM
ZUR
MONDLANDUNG
SIE HABEN 16000 EINHEITEN TREIBSTOFF ZUR ARBREMSUNG KOENNEN SIE EINE EINGABE 8 UNI 200 EINHEITEN WAEHLEN
ZWISCHEN
BEGINN
58
(SEC)
HOEHE