BASIC - Grundlagen und Beispiele; Anwendung in Mikro- und Minicomputern 1006010600, 3772403670


197 7 77MB

German Pages [82] Year 1979

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

BASIC - Grundlagen und Beispiele; Anwendung in Mikro- und Minicomputern
 1006010600, 3772403670

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

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