Citation for published version (APA):
Sanders, A. J. (1971). Programmeren in BASIC op de terminal: instrukties en voorbeelden. (DCT rapporten; Vol. 1971.029). Technische Hogeschool Eindhoven.
Document status and date: Gepubliceerd: 01/01/1971
Document Version:
Uitgevers PDF, ook bekend als Version of Record
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne
Take down policy
If you believe that this document breaches copyright please contact us at:
openaccess@tue.nl
providing details and we will investigate your claim.
TECHNISCHE HOGESCHOOL EINDHOVEN NEDERLAND
AFDELING DER WERKTUIGBOULKUNDE
LABORATORIUM VOOR TECHNISCHE MECHANICA
E INDEOVEN UNIVERSITY OF TECHNOLOGY NETHERLANDS
DEPPXTMENT
OF
MECHAXICAL ENGINEERINGTABORAT0P.Y
OF
APPLIED NECHANICS~-
Programmeren in BASIC op d e terminal:
instrukties en voorbeelden
door
A.J. Sanders
De informatie, opgenomen in deze handleiding, is kontinu aan wijzigingen onderhevig.
Wijzigingen zullen bij de terminal aangegeven worden.
DEEL I BASIC
-
PROGRJXMEERTAA-L
1 .Inleiding
2.Een voorbeeld
~~ 3.BASIC
-
ctatenients
3.1Variabelen
3.11Enkelvoudige variabelen
3.12Meervoudige variabelen
3.2Getallen
3',3Operatoren
3 . 4Standaardfunkties
3 . 5REM
3 . 6DIM
3 . 7DEF
3 . 8READ
3.9INPUT
3.10LET
3. 1 1IF
-
THEN
3.12FOR en NEXT
3.13GOT0
3.14 GOSUBen RETURN
3 . 1 5PRINT en TAB
3.16RESTORE
3.17STOP
3.18PAUSE
3.19END
3.20
Gebruik van matrices
3.20.1
Inleiding
3 . 2 0 . 2
MAT READ en MAT PRINT
3 . 2 0 . 3
Optellen, aftrekken en vermenigvuldigen
3.20.4
Vermenigvuldigen met een scalar
3 . 2 0 . 5
Identiteitmatrix
3 . 2 0 . 6
Transponeren
3 . 2 0 . 7
Inverteren
3.20.8
ZER en
CON3.20.9
Het dimensioneren van matrices
1 2 8 8 8
8
9
10 12 13 14 15 16 16 17 17 18 21 21 2 3 27 27 28 2 8 29 29 31 32 32 32 33 33 33 354 . Voorbeelden
37-
b -
DEEL I1
DE TEENINAL
i .Inleiding
1 . 1De coatrol-unit
1.2Het toetsenbord
1.3Het afdrukmechanisme
1.4Ponsband-ponser
1.5Ponsband-lezer
2 .
Toegang tot de computer
3. Het werken met de computer
4 . Het inlezen van een nieuw programna
o fvan nieuwe data
5.
Het verbreken van de verbinding
6.
Het maken van ponsband
7.
Fouten korrektie
7.1
Korrektie van een
ofmeer karakters
7 . 2
Korrektie van komplete regels
8. Conmand language statements
AHOY
RYECLEar
DAïa FROgram 2 'SüBprogram
DELete
EXTr
act
LISt
RES
e
quence
JO
In
STOre
DEStroy
RUNGO
DMA
LENgth
P
9.Aanhangsel
:Foutmeldingen
PAGINA
5 1 5 2 5 2 53 53 5 4 55 57 59 59 61 63 63 63 65 65 65 65 65 65 65 66 66 66 66 67 68 68 6 8 69 69 7 0 7 1Communiceren niet een computer is alleen mogelijk wanneer een taal gebruikt wordt,
die de computer begrijpt. BASIC (Basic All-purpose Syn-!bolic Instruction Code)
is zo'n taal. Er is enerzijds getracht om tot een simpele taal te konen, anderzijds
-
-
-
-
-
om
een taai-te
konstrueren, waarmee vele uiteenlopende problemen opgelost kunnen
worden. Dit laatste is mogelijk geworden door speciale instrukties in de taal op
te nemen voor het werken met matrices. Mocht u vergeten zijn wat zoal met niatri-
ces gedaan kan worden, dan is het aaIi te raden
omeen en ander weer eens
opte
h a l
en.
Na een eenvoudig voorbeeld van het gebruik van BASIC volgen achtereenvolgens
de standaard-instrukties en de Eatrix-instrukties. Het geheel wordt afgesloten
m e t
een serie voorbeelden ter verduidelijking van het gebruik van de diverse in-
strukties, die ook wel staterrents genoemd worden.
- 2 -
2. Een v o o r b e e l d
Aan d e hand van een eenvoudig v o o r b e e l d wordt i n d i t h o o f d s t u k een programma 'opgebouwd om d e g l o b a l e s t r u k t u u r v a n BASIC t e i l l u s t r e r e n .
We gaan u i t van een s t e l s e l van twee l i n e a i r e v e r g e l i j k i n g e n : ax
+
b y = cc
d x + e y = f D e algemene o p l o s s i n g van d i t s t e l s e l l u i d t : ce-
bf ae-
bdx =
a f-
c d y = ae-
bdA l s d e numerieke waarden van d e c o ë f f i c i e n t e n bekend z i j n , kunnen x en y
berekend worden.
Omdat zowel v o o r x a l s voor y d e term (ae
-
bd) u i t g e r e k e n d moet worden, l a t e n w e deze eerst bepalen.I n BASIC s c h r i j v e n we:
O110 LET G = A S E
-
B % DD e g e h e l e r e g e l wordt een statement genoemd. I e d e r e r e g e l i n een BASIC-program- ma b e g i n t met een regelnummer ( l i n e number) om d e p l a a t s v a n h e t s t a t e m e n t aan
t e duiden. yer r e g e l mag maar Eén s t a t e m e n t voorkomen. Eet programma werkt d e r e g e l s in v o l g o r d e van m u m ~ e r i n g a f , A l l e g e b r u i k t e l e t t e r s z i j n h o o f d l e t - ters omdat k i e i n e i e t t e r s n i e t op d e t e r m i n a i voorkomen. Het i s n i e t nodig om
s p a t i e s i n d e r e g e l s op t e nemen, onder d e voorwaarde d a t v o o r h e t l i n e nuriber vier p l a a t s e n g e b r u i k t worden. D e l e e s b a a r h e i d van h e t p r o g r a m a g a a t er dan e c h t e r w e l op a c h t e r u i t .
.-.
-
H e t woord LET i s een i n s t r u k t i e v o o r d e coinputer. Aan d e v a r i a b e l e , volgend op LET, wordt d.e waarde toegekend van d e u i t d r u k k i n g a c h t e r h e t = teken.
Het = t e k e n g e e f t in d i t g e v a l géén g e l i j k h e i d s r e l a t i e aan, maar i s b e t e r u i t t e s p r e k e n a l s : I'
....
k r i j g t d e waarde . . e .I I
Voor d e b e p a l i n g van x en y voegen w e d e volgende r e g e l s t o e : 0140 LET
X
= (C?ICE-
B*F)/GDe term ( C e
-
b f ) wordt t u s s e n h a a k j e s g e p l a a t s t om aan t e geven d a t d eg e h e l e term door G gedeeld wordt en n i e t a l l e e n ( b f ) . H e t z e l f d e , g e l d t u i t e r - aard v o o r d e terp (af
-
bd) op d e volgende r e g e l .A l s x en y u i t g e r e k e n d z i j n , dan w i l l e n w e h e t r e s u l t a . a t g r a a g op d e t e r m i n a l z i e n v e r s c h i j n e n . De volgende r e g e l b i e d t d i e mogelijkheid:
11
O160 PRINT
"X
= ";X , Y
= ";Y
Eet
PRINT-
s t a t e n e n t i n s t r u e e r t d e conputer om u i t v o e r t e geven. D e tussen a a n h a l i n g s t e k e n s g e p l a a t s t e u i t d r u k k i n g e n worden l e t t e r l i j k weergegeven. Voorde v a r i a b e l e n x en y wordt d e z o j u i s t berekende waarde a f g e d r u k t . D e komma en piintkomna heb5en i n d i t statemect een s p e c i a l e b e t e k e n i s ; Gebruiken w e een puntkonma dan wordt d e v a r i a b e l e volgend op d e puntkomma d i r e k t a c h t e r d e voor- gaande a f g e d r u k t . ( I n d i t g e v a l i s d e u i t d r u k k i n g tussen aanhalingstekens ook op t e v a t t e n a l s een v a r i a b e l e ) . D e k o m a g e e f t d e computer de opdracht een
a a n t a l s p a t i e s aan t e brengen t u s s e n d e twee door d e konna gescheiden v a r i a b e l e n . H e t p r o g r a m a z i e t er nu a l s v o l g t u i t : 011@ LET G = A 4 c E
-
B$D 0140 LET X = ( C % E-
B*F)/G 0150 LETY
= (AbCF-
B%D)/G 0160 PPXNT"X=";
X,
''Y
= ' I ; f Het z a l u w a a r s c h i j n l i j k w e l o p g e v a l l e n z i j n d a t d e prograrmaregels v r i j w i l - l e k e u r i g genummerd worden. De e n i g e voorwaarde waaraan d e numfiering van d e r e g e l s moet v o l d o e n i s d a t d e v o l g o r d e van h e t programma wordt aangegeven; sprongen i n d e num-ering hebben geen b e t e k e n i s , Eet i s ook n i e t nodig OF d er e g e l s i n v o l g o r d e i n t e l e z e n . De computer z o e k t z e l f d e jUiste programmavolg- orde u i t . A l l e g e t a l l e n van i t o t en met 4999 z i j n a l s l i n e number van program- na r e g e l s t o e g e s t a a n .
D e romp v a n h e t programma i s nu k l a a r . We moeten e c h t e r minstens nog twee r e g e l s toevoegen, n l . on aan d e d i v e r s e c o ë f f i c i e n t e n numerieke waarden t o e t e kunnen kennen:
0100 READ A, B, O, E, C,
F
- 4 -
R e g e l O I O 0 g e e f t d e i n s t r u k t i e weer om aan d e v a r i a b e l e n a t / m f d e g e t a l l e n
1
t / m 5 op r e g e l 5000 t o e t e kennen.R e g e l 5000 v e r d i e n t b i z o n d e r e aandacht. Het i s n a m e l i j k zo, d a t
-
a l l e i n t e le- zen g e t a l l e r i moeten s t a a n op r e g e l s d i e genummerd z i j n met5000
o f hoger.( H e t h o o g s t e l i n e number i s 9999). Voor d e nunixnering van d e " g e t a l l e n ' L r e g e l s ( d a t a - r e g e l s ) geildt weEr h e t z e l f d e a l s v o o r de programma-regels: de nummering mag sprongen v e r t o n e n .
D e e n i g e voorwaarde v o o r de g e t a l l e n op de d a t a - r e g e l s i s d a t hun v o l g o r d e over-
eenstemt met d e v o l g o r d e van de parameters a c h t e r h e t READ-statement. Ook kun- nen meerdere d a t a - r e g e l s v o o r d e g e t a l l e n g e b r u i k t worden, b.v.:
5000 1 , 2 , 4 5010 2 , -7, 5 o f 5500 1 , 2 5010
4
5020 2 , -7 5090 5 I n b e i d e g e v a l l e n z u l l e n d e v a r i a b e l e n a t / m f de j u i s t e waarde toegekend k r i j - gen.H e t programma i s nu b i j n a k l a a r . E r o n t b r e e k t nog maar één r e g e l , n l . : 0190 END
Deze r e g e l g e e f t h e t e i n d e v a n h e t p r o g r a m a aan. Daarom h e e f t d e z e r e g e i ook
het h o o g s t e l i n e number v a n d e programma r e g e l s . H e t programma z i e t er nu a l s v o l g t u i t : - _ - ~- - ~~ ~~ ~~ - ~ -~ ~~ ~~~ ~ O100 o1 10 0140 0150 O160 O190 5000 5010
READ
A, B, D, E, C, F LET G = A X E-
I331cE
LETx
= ( C ~ E-
B*F)/G LET Y = ( A f F -B % D)/G PRIMT"X
= ' I ; Z, "'Y ' I ; Y END1 ,
2 , 4 2 , -7, 5D i t programma m e t
-
d e z e d a t a ( r e g e l s5000
en5010)
z a l v o o r x en y d e berekende waa.r den u i t v o e r en.Hadden we andere g e t a l l e n genomen dan zou d e terrr G wel eens n u l kunnen worden, met h e t g e v o l g d a t i n de r e g e l s 0140 en 0 1 5 0 door n u l g e d e e l d moet worden. D i t i s onmogelijk, Daarom voegen we een a a n t a l r e g e l s aan h e t programma t o e , zodat d e l i n g door n u l n i e t v o o r kan komen:
0120
I F G = O THEN 018C O1
SO PRINT "GEEN OPLOSSING"A l s i n r e g e l 0110 G = O wordt, s t u u r t r e g e l 0120 d e computer n a a r r e g e l 0180.
Op d e t e r m i n a l v e r s c h i j n t d e mededeling "GEEN OPLOSSING". A l l e r e p e l s t u s s e n
0120
en O180 worden o v e r g e s l a g e n en d e verwerking van h e t programma wordt v o o r t - g e z e t net r e g e l 0190, d i e t e v e n s h e t e i n d e van h e t programma a a n g e e f t .H e t s t e l s e l v e r g e l i j k i n g e n kan v o o r a l l e gewenste waarden v a n q t / m f o p g e l o s t worden. D e l i n g door n u l i s u i t g e s l o t e n en i n a l l e andere g e v a l l e n worden de
r e s u l t a t e n v o o r x en y op de t e r m i n a l a f g e d r u k t . E f f i c i e n t i s h e t programma e c h t e r nog n i e t . S t e l , d a t w e h e t s t e l s e l v o o r v e l e v e r s c h i l l e n d e waarden van c en f w i l l e n oplossen. Ke moeten dan t e l k e n s i n r e g e l
5010
( z i e p a g 4 ) d etwee l a a t s t e g e t a l l e n door nieuwe vervangen en h e t programma opnieuw s t a r t e n . Het zou g e m a k k e r l i j k e r z i j n a l s a l l e g e t a l l e n i n een k e e r i n g e l e z e n kunnen worden. Met een k l e i n e w i j z i g i n g i n h e t programca i s d i t m o g e l i j k ;
R e g e l
OiOû
wordt:0100 READ A, B,
E,
EDe v a r i a b e l e n C en
F
worden i n een extra EAD-statement opgenomen, zodat z e a p a r t i n g e l e z e n worden.0130
READ C, FVerder nemen w e i n h e t prograrna een statement op, d a t d e coniputer t e r u g v e r -
wijst n a a r r e g e l 0130 : h e t z . g . GOTO-statement. 0170 GOT0 0130
I n d e r e g e l s 0140,
0150
en 0160 worden X en Y uitgerekend e n d a a r n a a f g e d r u k t . Omdat r e g e l 0170 i e d e r e k e e r t e r u g verwijst n a a r r e g e l0130
worden v o o rE
en F weer nieuwe waarden i n g e l e z e n , t o t d a t er geen g e t a l l e n meer v o o r r a d i g z i j n .- 6 -
OD d a t norrent meldt d e computer d a t d e d a t a r e g e l s l e e g z i j n . Op d e t e r m i n a l wordt a f g e d r u k t :
JOE NEEDS DATA!
GO AHEAD
Nieuwe g e t a l l e n kunnen dan worden i n g e v o e r d of h e t programma kan worden b e e i n d i g d .
Na h e t i n t y p e n van h e t programma, t y p e n we h e t woordje RUN, g e v o l g d door h e t indrukken van d e t o e t s RETVRN ( z i e p a g 5 3 ) . Het kommando RUN s t a r t de bewer- k i n g van h e t programma.
Het v o o r b e e l d en d e u i t v o e r z i j n h i e r o n d e r weergegeven zoals h e t op d e t e r m i n a l v e r s c h i j n t .
e k e waarden opgegeven. N a h e t komando t. ]?aarna v o l g e n . de u i t t e voeren v o e r b e t e k e n t : a . . o
maal
t i e n t o t d e macht....
B l o k 2 en 3: v o o r d e v a r i a b e l e n c en f worden nieuwe waarden i n g e l e z e n . Daarna wordt h e tkormnando GO gegeven i . p . v . RUN. Nu wordt d e verwerking v a n h e t prcgramma u o a r t - g e z e t op r e g e l 0130.
vet 5030 worden u i t g e w i s t .
B l o k 4 : D i t i s een z . g . Comand Language Statenrent ( z i e pag.66). D e r e g e l s
5000
t o t enB l o k 5 en 6 : v o o r a l l e v a r i a b e l e n worden nieuwe waarden i n g e l e z e n en d e r e s u l t a t e n v o o r x en y worden u i t g e v o e r d .
3. BASIC
-
STATEMENTS
3.1.
Variabelen
3.1.1.
Enkelvoudige variabelen
--- --___---
Een enkelvoudige variabele is een hoofdletter
ofeen hoofdletter
gevolgd door één cijfer. Alle variabelen hebben als beginwaarde nul.
Eetis dus niet nodig om dit,
a l s umet nul als startwaarde wilt be-
ginnen, in het programma op te geven.
Een variabele in
BASICkrijgt één getal toegekend, b.v. door een
READ-of een LET-statement.
Voorbeeld:
---
A, 2 ,Q
6 ,E
7 ,K
3.1.2.
Meervoudige variabelen
---_-
---___----
Deze variabelen worden gebruikt om vectoren en matrices aan te duiden.
Eén letter definieert de variabele, gevolgd door een tussen haakjes
geplaatste aanduiding, welke de dimensie van de variabele bepaalt.
(Er zijn dus maar
26 verschillende meervoudig variabelen per program-
ma mogelijk). Dezelfde letter mag niet gebruikt worden voor zowel een
enkelvoudige als een meervoudige variabele. De tussen haakjes geplaat-
ste
aandtiiding mag bestaan uit:
-
éénpositief getal,
b.v. A(i),
K
( 3 ) , Q ( 9 ) .We spreken dan van een één dimensionaal array (vectorj.
(Nul is niet toegestaan).
-
twee positieve getallen, gescheiden door een komma, b.v.
( 3 9 1 1 , C (9,121,X
(1,161-
Dit wordt een tweedimensionaal array (een matrix) genoemd.
tal oplevert. Wanneer dit
getal niet geh
gehele getal gebruikt. Bijvoorbeeld:
3.198wordt 3
6.999
wordt
6an wordt het meest nabij liggende kleiner
3.2 G e t a l l e n
Een g e t a l n;ag p o s i t i e f of n e g a t i e f z i j n en h e t mag b e s t a a n u i t maximaal negen c i j f e r s . Voorwaarde i s e c h t e r d a t h e t i n decimale vorm staat.
Voorbeeld v a n g e t a l l e n i n BASIC: 2 -3.794 123456789 -.9248376
De volgende v o o r b e e l d e n z i j n geen ge 1 4 / 3 47 .O00123456789
a l l e n
De'eersEe t w e e z i j n formules maar géén g e t a l l e n , H e t l a a t s t e g e t a l h e e f t meer dan negen c i j f e r s . We mogen de computer de decimale vorm van 1 4 / 3 en
47 l a t e n b e p a l e n , e n v e r d e r nog w a t met d e uitkomst doen, maar h e t i s n i e t t o e g e s t a a n z e a l s zodanig op t e nemen a l s i n t e v o e r e n g e t a l l e n .
G e t a l l e n v a n meer dan negen c i j f e r s
-
maar ook andere-
kunnen we gemakkelij- k e r s c h r i j v e n d o o r v a n de l e t t e r E g e b r u i k t e maken. De l e t t e r E b e t e k e n t n a m e l i j k : "maal t i e n t o t de macht". Symbolisch: aEb, a en b z i j n g e t a l l e n . Voorbeeld: -7.1 E-3 =-
0.0071---
.31 E2 = 31 2 E 3 = 2000-
10-
3 . 3 .
Operatoren
Een computer kan veel bewerkingen uitvoeren.
Eiij
kan optellen, aftrekken,
vermenigvuldigen, delen, machtsverheffen, worteltrekken, etc.
In
onderstaande lijst staan de operatoren die in
BASICtoegestaan zijn:
+
> < - >= <= <> A + E A - EA *
B A / B A + 2 . A > B A < BA
>= B A <= B A = BA
<> BBetekenis
---
tel
Ebij
A optrek E van
A
af
vermenigvuldig
Amet B
deel
Adoor B
verhef
A
tot de macht 2
A
groter dan
B
A
kleiner dan B
A
groter of gelijk aan
B
A
k3einer of gelijk aan
B
A
i sgelijk aan B
A
is niet gelijk aan B
Alleen de laatste zes symbolen komen in een IF-THEN statement voor. (zie
Pa8
17 ) 'Twee operatoren mogen nooit naast elkaar staan. Zo is
A/-€3niet toegestaan.
Door haakjes te gebruiken en te schrijven
A/(-B)is het probleem opgelost.
Uitdrukkingen tussen haakjes worden eerder uitgevoerd dan andere operaties.
Het gebruik van haakjes kan worden aanbevolen.
u
Voorbeeld: We willen uitrekenen
{ ( A + B)xC)---_-_
Als we nu intypen:
0010
LET
F
= A + BmC+Ddan wordt eerst
Ctot de macht
Cverheven, daarna wordt dit met B vermenig-
vuldigd en het resultaat wordt bij
Aopgeteld.
Infeite hebben we dus het
volgende uitgerekend5
A
+
(Bx(CD))Willen we het juiste resultaat bereiken, dan typen we in:
O010
LZT
F
=((A
+
B)RC)I.DManneer in een formule geen haakjes voorkomen, dan worst eerst niachtverheven,
daarna vermenigvuldigd en tenslotte opgeteld. Voor delen geldt hetzelfde als
voor vermenigvuldigen, voor aftrekken hetzelfde als voor optellen.
Zijn alle bewerkingen in een formule van dezelfde soort dan wordt van links naar rechts de formule uitgerekend.
Voorbeeld
---
:A
-
B-
C Eerst wordtE
van 4- afgetrokken, daarna C van het ver- schil.A
/
B
/
C Eerst wordt A doorB
gedeeld, daarna het resultaat door C.A
I. B I. C De computer verheftA
tot de macht B en het resultaat tot de macht C.-
1 2-
3.4
Standaard funkties
Ce computer heeft een aantal standaard funkties ter beschikking. De funkties
bestaan uit een naam van drie letters en een tussen haakjes geplaatste aandui-
ding, waarvoor iedere uitdrukking mag worden ingevuld. Wel geldt de restriktie
dat de uitdrukking zinvol moet zijn. Zo zijn b.v.
4-10,
log
(O)
etc., niet toe-
gestaan.
CLK(X)
TIM
(X)
X
in radialen
sinus van
X
cosinus van
X
tangens van
X
arctangens (in radialen) van
X
natuurlijk logaritme telog
(XI1
normale logaritme
{ l o g(X))
e-funktie (e
)wortei uit
x
.
J Xabsolute waarde van
X .
/X(
het grootste gehele getal kleiner dan
x
b.v.:
INT(3.17) =3
INT(-3.17) = -410
X
bepaalt het teken van een variabele:
als
X
= Odan
SGN(X) =0
als
X
>O
dan
SGN(X) = + Ials X
< Udan
SGN(X) = - ideze funktie genereert een random-getal,
Xmag de waarde i,
2 of
3hebben (drie random generators zijn beschikbaar)
~-
X is een dummy, d e
waarde
tal
X
=1
tijd, verstreken na het starten van.
wordt niet gebruikt, mees-
tijd van de dag in uren, b.v.
14.20
het programma (in seconden)
Deze "funktie" kan alleen gebruikt worden samen met een PRINT-statement.
"X" geeft de plaats aan waar op een regel begonnen wordt met typen.
Als "X" kleiner is dan de momentane positie van de schrijfkop, dan wordt
de TAB-funktie overgeslagen.
3
.
5-
REMHet REM-statement geeft u de mogelijkheid om kommentaar toe te voegen aan een programma. Het statement mag op iedere plaats i n het programma staan. Alles wat volgt na een
Voorbeelden:
I
O0 REM 110 PEK 120REM
130 F32f 140 RG”i 150PB%
200mJ!f
210 R B f__---
REX-statement wordt door de computer overgeslagen.
BEPP-LING KXOOPPUNITSKMCaTEN I N EEN VAKhXRx VOLGORDE INVOEE I S :
N :
AANTAL
VAKTdERKCTAVEN K : FANTAL KNOOPPUNTENL(N) : LENGTE VAKG\TERKSTAVEN
(N
NAAL)...*...
DIT I S
EEN
SUBRGUTINE: VOORHET @FLOSSEN VAN
EEN STELSEL TIUI ZES LINEAIRE. VERGELIJKINGEN-
1 4-
3 . 6 DIV
-
Voor a l l e meervoudigevariabelen ( z i e pag
8
) moet d e d i m e n s i e opgegeven worden. Konkreet b e t e k e n t h e t , d a t u d e l e n g t e van een v e c t o r of de g r o o t t e van een ma- t r i x o p g e e f t . D e op t e geven diarensie moet g r o t e r z i j n 2an of g e l i j k aan de d i -mensie, d i e d e matrix t i j d e n s d e v e r w e r k i n g van h e t programma kan aannemen. D e g r o o t t e v a n d e dimensie moet worden aangegeven met g e t a l l e n .
Een f o u t m e l d i n g (SUBSCR.> DIM) k r i j g t u wanneer de w e r k e l i j k e dimensie g r o t e r i s dan d e opgegeven dimensie.
-
Het g e t a l d a t de dimensie a a n g e e f t mag n i e t g r o t e r z i j n dan 9999. Voorbeelden:
---
130 DIM P(21 y 3 ) y A(B6)3.7
-
DEFWanneer u i n uw programma v a a k d e z e l f d e f u n k t i e moet u i t r e k e n e n , dan kunt u een DEF-statement gebruiken om zo'n f u n k t i e t e d e f i n i ë r e n . D e naam van de funk- t i e moet b e s t a a n u i t d r i e l e t t e r s , de eerste twee z i j n
FN.
A l s derd.e l e t t e r kunt u i e d e r e l e t t e r u i t h e t a l f a b e t gebruiken.U
mag dus 26 v e r s c h i l l e n d e f u n k t i e s i n een programma gebruiken: FNA, FNB, FNC, FND, e t c . H e t gemak v a n <DEF> b l i j k t2 a l s u v a a k , b . v . eVx
U d e f i n i e e r t e e n f u n k t i e dan als v o l g t :
130
DEF FNE(X) = EXP(-X.E2)Later kunt u dan d i r e k t v e r s c h i l l e n d e waarden v a n d e f u n k t i e u i t r e k e n e n , b.v.:
FNE(.
I ) , FNE(3.45), FNE(Alc3).moet u i t r e k e n e n .
R e t DEF-statement mag op i e d e r e p l a a t s i n h e t programma staan. De u i t d r u k k i n g
r e c h t s van h e t g e l i j k t e k e n mag i e d e r e formule z i j n z o l a n g a l s deze maar op een
r e g e l p a s t . I e d e r e kombinatie van s t a n d a a r d f u n k t i e s , v a n r e e d s e e r d e r g e d e f i n i - e e r d e f u n k t i e s i s m o g e l i j k en t e v e n s mogen er meerdere v a r i a b e l e n i n voorkomen. B i j v o o r b e e l d , wanneer FNB. a l d u s g e d e f i n i e e r d i s :
170
DEF FNR(X) = SQR(2+-
LOG@)-
EXP(YjYZ)3lt(X + S I N ( 2 i l t Z ) ) )en u h e b t v a n t e v o r e n waarden toegekend aan Y en Z, dan kunt u v r a g e n n a a r d e waarde van
FNR(a.371).
Daarna kunt u Y en Z weer ander waarden geven en wederomeen nieuwe f u n k t i e w a a r d e bepalen.
I e d e r e f u n k t i e d i e u met een DEF-statement d e f i n i e e r t mag s l e c h t s van één para- meter a f h a n k e l i j k z l J n . Aa;; a l l e andere parameters d i e rechts van h e t g e l i j k t e k e n
s t a a n , moet u v a n t e voren een waarde toekeníieii.
-
1 6-
3.8 READ
-. -
Eet READ-statement wordt gevolgd door een of meerdere variabelen. Aan de variabe-
len worden getallen toegekend, die voorkomen op de regels genummerd met 5000
ofhoger. Iedere keer dat ergens in een programma
READvoorkomt, worden de nog be-
schikbare getallen in volgorde aan de diverse variabelen toegekend. Wanneer er
voor een READ-statement geen getallen meer voorradig zijn, dan wordt het program-
ma als beëindigd beschouwd.
Omdat we getallen moeten inlezen, voordat we ermee kunnen werken, staan de READ-
statements meestal aan het begin van een programma
of een subprograma.
Voorbeelden: 200 READ
---
A,
B yL8,
F1210 READ
K1,
C93 . 9
INPUT
Soms is het gewenst dat we getallen invoeren tijdens de verwerking van het pro-
gramma. Dit kan door in plaats van een READ een INPUT-statement te gebruiken.
Wanneer b.v. tijdens de verwerking twee getallen ingevoerd moeten worden dan
staat er in het programma b.v.:
140INPUT
X, Y
Zodra de computer aan regel 140 toe is, gaat er in de terminal een belletje rin-
kelen
en ddt I svoor
d egebruLker
h e tsein em
detwee getzllen
IE t e typen;De
getallen worden geschei0en door een
komma.Ma het
Intypei? w o r d tde
DCCl’UD2T-toets(zie pags’3
, )Ingedrukt en de computer vervolgt zijn werk.
3.10
-
LET
Het LET-statement kent aan een variabele een waarde toe, die bepaald wordt door
een uitdrukking achter het
=teken. Het
=teken heeft hier
-
niet de betekenis van
een gelijkheidsrelatie! Het zou uitgesproken kunnen worden als
..."
krijgt de
waarde".
.
.
Ieder LET-statement is van de vorm: LET (variabele)
=(uitdrukking)
Voorbeelden:
100LET X
= X + 1-__---
256
LET
P3 = A f 2 +(Z-B)+K 314LET
P = P2 = Q3 = 10/1.29 400LET
B =SIN(Y/(A+B))
+
14In het derde voorbeeld wordt de waarde
(10/1.29)toegekend aan drie variabelen:
P,
P2 en43.
3.11
IF-THEN
Soms
willen we een aantal
r e g e l svan liet p r o g r m a overslaan, namelijk als aan
een bepaalde voorwaarde voldaan wordt. Hiervoor hebben we het IF-THEN-statement.
Het is
aldusgestruktureerd:
_- -
In-regel
340M
is.
A l sdit waar is dan wordt het programma in regel
030voortgezet. Is
aande
voorwaarde niet voldaan dan wordt de verwerking voortgezet met de eerstvolgende
regel-na
regel
340.Regel
120laat zien dat het ook mogelijk is
onte verwijzen naar regels net een
wordt nagegaan
of de waarde van sin(X) kleiner dan of gelijk aan
-
I 8-
3.12
FOR en NEXT
Het komt vaak voor dat een bepaalde berekening niet een of twee keer, maar vele
malen uitgevoerd moet worden. Willen we b.v. de computer alle wortels laten trek-
ken voor de getallen van
1
tot
100dan zouden we als volgt
o n sprogramma kunnen
schrijven:
1001 ,
SQR(1)
110 PRINT 2, SQR(2)
1 2 3SQR(3)
. . .
. . .
. . . . . .
1070 PRINT 98, SQR(98)
1080 PRINT 99, (SQR(99)
1090 PRINT
100,SQR(100)
1100END
Op deze manier wordt
onsprogramma
1 O iregels lang. We kunnen het programma be-
langrijk inkorten door een FOR-TO met een NEXT-statement te gebruiken.
100
FOR I
= 1TO
100 110I, SQR(1)
120 NEXT
I
130
END
-~
Dit programma geeft precies dezelfde resultaten.
Regel
100geeft aan dat er wat moet gebeuren met de getalles
1tot en met
100:Wat dan wei, dat wordt verteld in regei
ii0,namelijk het afdruKken van de ge-
tallen en hun wortels.
Regel 120 laat de computer het getal iedere keer ophogen
(NEXTI:
volgende I),
en stuurt de computer terug naar regel
110.Na dit honderd keer gedaan te heb-
ben, gaat de computer naar de volgende regel (regel
130)waar het kommando END
staat en het programma wordt beëindigd.
In dit voorbeeld wordt de waarde van I telkens met
+1
opgehoogd. Dit doet de com-
puter automatisch. Wanneer we i.p.v. met
+I opwillen hogen met
3,
4 ,
-1of
5 ,etc., dan moeten we aan het FOR-TO-statement het woord STEP toevoegen.
In
dit geval worden de getallen 100, 95,
90,85
....
10en 5 genomen en verder
bewerkt. Wanneer STEP wordt weggelaten, wordt altijd een stapwaarde van
+ Iver-
ondersteld.
Ingewikkelde FOR-statements zijn toegestaan. De startwaarde, de eindwaarde en
de stapwaarde mogen beslaan uit formules. B.V. wanneer aan
N en
Z
eerder in het
programma waarden zijn toegekend dan kunnen we schrijven:
175 FOR X
=N
+
7+Z TO(Z-N)/3 STEP (N-4fkZ)/10
Als de stapwaarde positief is dan wordt de variabele zolang met de stapwaarde
opgehoogd tot hij net iets kleiner dan of gelijk is aan d-e eindwaarde. Is de
stapwaarde negatief dan gaat het proces door tot de variabele nog net iets gro-
ter dan of gelijk is aan de eindwaarde.
Als de startwaarde groter
isdan de eindwaarde (of kleiner bij een negatieve staF
dan slaat de computer alles over
totaan het NEXT-statement en gaat vandaar af
met het programma verder.
Wanneer we het FOR-TO-statement gebruiken dan moet dat altijd gevolgd worden
door een NEXT”statement.
Ket gehele <FOR-TO en NEXT>
Vaak worden er binnen een loop andere loops gebruikt. Deze loops mogen elkaar
niet kruisen.
met alles wat ertussen ligt wordt een loop genoemd.
Voorbeeld
---___-
:Toeyes
taan
fFOR X
FOR Y
NEXT Y
!-
NEXT X
IFOR
X
FOR
Y
FOR
ZNEXT
Z
FOR W
NEXT W
NEXT
Y
FOR-Z
NEXT Z
NEXT X
Niet toegestaan
rFOR X
FOR
Y
t
NEXT X
-NEXT Y
rFoR
$ZT’.
NEXT Z
FOR
W
1
NEXT W
-NEXT
X
-
20-
De algemene vorm van het FOR-statenent is:
(LN) FOR (A)
-
= (uitdr.) TO (uitdr.) STEP (uitdr.)een aantal statements
(LN) NEXT (A)
-
LN : linenumber
A : enkelvoudige variabele
3.13 GOTQ
-
H e t kan voorkomen d a t u
v o l g o r d e worden a f g e w e r k t o f d a t b e p a a l d e d e l e n worden o v e r g e s l a g e n . H e t GOTO-statenent s t u u r t d e computer n a a r de door u gewenste r e g e l , V e r w i j z i n g e n zowel n a a r r e g e l s v o o r a l s na h e t GOTO-statement z i j n toege-
s t a. an.
n i e t w i l t d a t a l l e r e g e l s van h e t programma op
V o o r b e e l d : 90 GOT@ 48
---
R.egel 90 s t u u r t d e computer t e r u g n a a r regel- 48. A c h t e r <GOTO> mag a l l e e n een l i n e number voorkomen.
3 . 1 4 GOSUB en RETUF3
I.Ta.Izneer een g e d e e l t e v a n een programma meer dan eens g e b r u i k t wordt of mo- g e l i j k e r w i j s op v e r s c h i l l e n d e p l a a t s e n i n h e t g e h e l e prograrmna dan wordt v a n d i t g e d e e l t e een z.g. s u b p r o g r a m a genraakt, ook w e l s u b r o u t i n e genoemd. De t o e g a n g t o t h e t subprogramma i s een GOSUB-statement.
V o o r b e e l d :
---
190 GQSUB 350Na bewerking v a n d e s u b r o u t i n e d i e op regel. 350 b e g i n t , g a a t h e t
programma door niet d e r e g e i d i e v o l g t na r e g e l 190.
Een s u b r o u t i n e moet a f g e s l o t e n worden m e t een PliTUPN-statement. V o o r b e e l d :
---
4.50 R-ETURNBinnen e e n s u b r o u t i n e mogen w e e r e e n o€ meerdere s u b r o u t i n e s g e b r u i k t worden. H e t i s e c h t e r w e l v e r p l i c h t om i e d e r e subrout!-ne af t e s l u i t e n met een
RETURN-statement. Een GOTO- of een IF-THEN-statement a l s a f s l u i t i n g is n i e t t o e g e s t a a n , h'anneer er binnen e e n s u b r o u t i n e nog w e e r andere s u b r o u t i n e s voor- komen dan nag van d e ene s u b r o u t i n e n i e t n a a r d e a n d e r e verwezen worden.
-
2 2-
Voorbeeld:_---
30 LETX
=A
f 10 40 LET Y = B-
2 50 GOSUB 120 60 LETX
= C 70 LET Y = D 80 GOSUE 120 90 LET P = C / 3 + D 100 P P I N T P i 1 0 STOP120 LET Q = INT (X/Y>
130 PRINT Q
140 RETURN 150 END
3.15 PPINT en TAB
H e t PFINT-statement g e e f t opd-racht om v i a de t e m i n a l u i t v o e r van h e t programma t e geven. Eet TAB-statement b i e d t d.e m o g e l i j k h e i d om d e u i t v o e r v a n h e t p r o g r a m a op d e door u gewenste p l a a t s op h e t p a p i e r t e k r i j g e n . R e s u l t a t e n v a n berekeningen en t e k s t ( e n ) opgenoEen i n h e t programma kunnen a f z o n d e r l i j k en gekom-bineerd v i a d e terminal u i t g e v o e r d worden.
V o o r a l i n progratma's d i e veel u i t v o e r geven i s h e t w e n s e l i j k d a t d e r e s u l - t a t e n op een o v e r z i c h t e l i j k e w i j z e op d e t e r m i n a l v e r s c h i j n e n .
Een v i j f t a l f a c i l i t e i t e n z i j n h i e r v o o r in,BASIC ingebouwd.
1 .
h e t g e b r u i k v a n t e k s t 2. d e komma 3. d e puntkomma4 .
h e t TAB-statement 5 , p a p i e r o p v o e r I e d e r e w i l l e k e u r i g e t e k s t w o r d t l e t t e r l i j k a f g e d r u k t op d e t e m . i n a l , wanneer d e z e t u s s e n a a n h a l i n g s t e k e n s staat en v o l g t op een PRINT-statement,P e r r e g e l kunnen meerdere v a r i a b e l e n
-
t e k s t i s ook a l s z o d a n i g op t e v a t t e n-
worden a f g e d r u k t , door z e t e s c h e i d e n d o o r een korna of eei, puntkomma. H e t i s n i e t n o o d z a k e l i j k d a t d e a f t e drukken v a r i a b e l e n i n één PRINT-statement ZIJII opgenomen. R e t z f s l ~ i t e ï ì v a n een P R L E - s t a t e g e n t m e t een 132mL2 of een puntkonma h e e f t t o t g e v o i g d a t d e uiiz t e v o e r e n v a r i a b e l e n in een volgend
PRINT-statement op d e z e l f d e r e g e l wordeii a f g e d r u k t , t o t d a t d e regel v o l i s .
..
Z i j n d e v a r i a b e l e n g e s c h e i d e n door koma's da.n worden er maximaal s l e c h t s v i j f g e t a l l e n p e r r e g e l a f g e d r u k t i n v i j f v a s t g e l e g d e zônes. A l s er meer dan v i j f g e t a l l e n u i t g e l e z e n worden dan wordt er n a i e d e r e v i j f g e t a l l e n weer op een nieuwe r e g e l begonnen.
Op een r e g e l kunnen meerdere g e t a l l e n a f g e d r u k t worden d o o r g e b r u i k t e maken v a n e e n puntkomma. D e i n d e l i n g van een r e g e l hangt dan a f van h e t a a n t a l c i j - f e r s p e r g e t a l .
-
2 4-
Drie groepen g e t a l l e n kunnen onderscheiden worden:
-
k l e i n e g e h e l e g e t a l l e n(<10.000)
: 6 p l a a t s e n-
g r o t e g e h e l e g e t a l l e n : 13 p l a a t s e n-
a l l e a n d e r e g e t a l l e n : 13 p l a a t s e nP e r regel z i j n 7 2 p o s i t i e s b e s c h i k b a a r ( s p a t i e s ook meegerekend). Bet i s dus a f h a n k e l i j k v a n d e u i t v o e r h o e v e e l g e t a l l e n er p e r r e g e l a f g e d r u k t kunnen wor- den. H e t i s a-an t e b e v e l e n om p e r programma u i t t e proberen op welke manier d e u i t v o e r h e t b e s t g e r e d i g e e r d kan worden.
Voor h e t opvoeren v a n h e t p a p i e r (één r e g e l ) i s een l e e g KTINT-statement v o l - doende.
I n een PRIPT-statevent kan TAT3 g e b r u i k t worden. A c h t e r
? P R
wordt t u s s e n haak- j e s d e gewenste p o s i t i e opgegeven. De waarde v a n u;-tdrukking, d i e d e p o s i t i e a a n g e e f t moet l i g g e n t u s s e n1
en 7 2 . B e v i n d t d e s c h r i j f k o p z i c h i n een p o s i t i e v e r d e r dan d e a c h t e r TAB opgegeven waarde dan wordt d e TAB-funktie genegeerd. Voorbeelden:----_---
a. O200 PRINT
X,
S@P(X)E e r s t wordt d e waarde v a n
X
en i e t s v e r d e r o p d e waarde v a n d e w o r t e l u i tX
a f g e d r u k t .Na
h e t afdrukken v a nX
en d e wortel u i t X wordt h e t p a p i e r één r e g e i opgevoerd en neemt de s c h r i j f k o p d e eerste p o s i t i e op d e nieuwe r e g e l i n .b.
0215
Y,
Z,X
+
Y , X/Z,X I Y
C e waarden van
X,
Y en 2 , v a n d e som v a nY
en Y en van d e d e l i n gX:Z,
worden op een r e g e l a c h t e r elkaar a f g e d r u k t . D e waarde van h e t produkt v a n Z en Y wordt aan h e t b e g i n v a n de v o l g e n d e r e g e l a f g e d r u k t .
c.
O 1 0 0
F O P I =1
'3 6O 1 1 0
PRINT I
O120
NEXT I
De u i t v o e r i s :
1
2
34
5 6 d . 0100 POR I =1
TO 6 O 1 1 0 PRINT I,0120
NEXT I 0130 END De u i t v o e r i s :1
2 3 64
4Wordt de komma i n r e g e l 0110 vervangen door een puntkomma, dan
i s
h e t r e s u l t a a t :
1
2
3 55
6
e. O i 80 PRINT "DE WAARDE VAN X IS"; X;
.
Op de eerminal v e r s c h i j n t nu, a l s de waarde v a n X b i j v o o r b e e l d 3 i s :
np
uri WA!JEUU
VA??
XIC
3 sf.
O 1 15 PRINT "DE WORTEL UIT"; X;" =";SQR(X)
A l s b . v . X = 6 2 5 dan i s d e u i t v o e r :DE WORTEL U I T 625 = 2 5
B i j h e t gekombineerd g e b r u i k e n v a n tekst en u i t t e v o e r e n v a r i a b e l e n i s h e t aan t e b e v e l e n om a l s s c h e i d i n g s t e k e n de puntkomma t e nemen. D e u i t v o e r komt dan a c h t e r e l k a a r t e s t a a n . Hadden er i n d i t v o o r b e e l d komma'E g e s t a a n , dan was d e u i t v o e r geworden:
-
26-
g .
0150
PRINT X; T A B ( 2 0 ) , Y; TAB(2;YN); Zh.
E e r s t w o r d t d e waarde, v a n X a f g e d r u k t , daarna beweegt d e s c h r i j f k o p z i c h n a a r d e 20-ste p o s i t i e op d e r e g e l en d r u k t Y a f .
Als
N i n d i t g e v a l b.v. 16 i s dan wordt 2 a f g e d r u k t op d e 32-ste p o s i t i e en v e r d e r . Ook nu g e l d t weer d a t puntkomma's d e v o o r k e u r boven komma's v e r d i e n e n . Door komma's t e gebruiken bent u gebonden aan v i j f van t e v o r e n v a s t g e -l e g d e zônes en h e e f t h e t TAB-statement e i g e n l i j k w e i n i g z i n .
Tussen het TAB-statement en de e e r s t v o l g e n d e variabele mag a l l e e n de kam? als s c h e i d i n g s t e k e n g e b r u i k t worden.
Kolommen g e t a l l e n worden meestal v o o r z i e n v a n e e n b o v e n s c h r i f t dat aan- g e e f t w a t de g e t a l l e n v o o r s t e l l e n . I n d i t v o o r b e e l d worden d a a r v o o r de l e t t e r s
A,
B y C en SOM g e b r u i k t . Hoewel d e k o m scheidingsteken is,wordt d e u i t v o e r :
ABCSOM
I n een PRINT-statement dat a l l e e n tekst u i t v o e r t verliest de komma z i j n
ement g e e f t h e t gewenste r e s u l t a a t . Dus b i j v o o r b e e l d : PRINT
TAB(II),
"A", TAB(25),"B",
TA3(42), t'C'r, TAB(56), "SOM"De ULtTqeP1 A B C SOM
Ook i s h e t m o g e l i j k om i n h e t PRINT-statement m e t s p a t i e s t e werken:
PRINT"
A
De u i t v o e ris:
A B B C Cs
OM"
SOM
3.16
RESTORE
Het kan voorkomen dat u de in te voeren getallen méér dan een keer wilt ge-
bruiken in uw programma. Het RESTORE-statement stelt u in staat om dit zo
vaak te doen als u maar wilt. Iedere keer dat de computer in het programma
RESTORE tegenkomt worden
bij het volgende XEAD-statement de getallen weer van
voren
a faan uitgelezen.
100
READ
N
110FOR
I
= 1TO
N 120READ
XVoorbeeld:
---
*.. . .
200..
.
...
560 57 O 580 590. . .
. . .
. . . .
. .
NEXT I
. . . . . .
. . .
:
,E
s
TORE. READY
FûR
1
=1
TO N
READX
Let op regel 570. Omdat de waarde van N al een keer ingelezen is
(regel
100)en aan de computer dus bekend is, wordt het eerste ge-
tal nu toegekend
aaneen variabele, die
i nhet programma niet ge-
bruikt wordt. Op deze manier kunnen getallen die ons een tweede
o fdaaropvolgende keer niet meer interesseren, overgesiagen worden.
3.17
-
STOLEet
STOP-statement beëindigt! de verwerking van het programma. Wordt de verwer-
king van het programma opnieuw gestart, dan begint de computer weer helemaal
opnieuw.
Voorbeeld:
850STOP
-
2%-
3.18 PAUSE
Het PAUSE-statement stopt de verwerking van het programma. Door de computer
wordt het volgende bericht gegeven: PAUSE AT
LINE...Wanneer nu het kommando
GOwordt ingetypt, gevolgd door het indrukken van de
RETURN-toets, dan gaat de verwerking van het programma verder met het eerste
statement, volgend
ophet PAUSE-statement.
Voorbeeld: 210 PAUSE
---
3 . 1 9
-
END
-
Ieder programa wordt afgesloten met een END-statement. Dit statement-heeft
het hoogste linenumber van het programma (maximaal
4999).De vorm is eenvoudig: een linenumber met END
3.20 Gebruik van matrices
3.20.1
-_---
Inleiding
In BASIC zijn een aantal statements opgenomen, die het werken met matri-
ces erg gemakkelijk maken. Ook een-dimensionale arrays (vektoren) mogen
in BASIC als matrix behandeld worden, In de lijst, die hieronder volgt,
zijn die statements opgenomen.
MAT READ
A,
B, C
MAT PRINT
A,
B, C
M A T C = A + B
MAT C
=A
-
B
MAT C
=A E B
MAT C
=INV(A)
MAT C
=TRN(A)
Lees de matrices
A,B en
C.De dimensies van de ma-
trices moeten van
tevoren opgegeven zijn. De elemen-
ten van een matrix worden rij na rij ingelezen. Net
gedeeltelijk inlezen van een matrix is-
-
niet-mogelijk.
Druk de matrices A,
Ben C af op de terminal. Een
matrix wordt rij na rij afgedrukt. Het gebruik van
een komma of een puntkomma hebben hetzelfde effekt
als bij het PRINT-statement (zie pag23). Voor ie-
dere rij wordt op een nieuwe regel begonnen.
Tel matrix
A
bij B op en ken de berekende waarde toe
aan de elementen van matrix
C.A
en B moeten dezelfde
d
imens
i
e hebben.
Trek ma*Lrix
Bvan rratrix,
A af en ken het resultaat
toe aan matrix C.
A
en
Bmoeten dezelfde dimensie
hebben.
Vermënigvuldig matrix
A
met matrix
B.Het resultaat
is matrix C.
~~ - ~~ ~
Inverteer de vierkante matrix
A.De matrices
Aen C
moeten een dimensie hebben, die inverteren mogelijk
maakt. Deze operatie geldt alleen voor
twee-dimensie-
nale arrays.
Transponeer matrix A en ken het resultaat toe aan
matrix C.
-
30-
MAT C
= (K)*AM A T C = A
MAT
C = CONMAT C
= ZERVermenigvuldig matrix
Amet een waarde K. K mag
een getal of een uitdrukking zijn en moet altijd
tussen haakjes staan.
Matrix
Cwordt gekopieerd van matrix
A .Ieder element van matrix
Ckrijgt dewaarde 1-toege-
kend.
CONbetekenlt
constant.
Ieder element van matrix
Ckrijgt de waarde nul.
(ZER
is een afkorting van
ZERO(nul)).
MAT C
= IDNMaak van matrix
Cde identiteitsmatrix, d.w.z. alle
e
1ement
en kr
í j g è n d e w a a r d ë n ü l , G e ~ v ë - d e ë r e m ë n ~ ~ten op de hoofdiagonaal, die de waarde
i(een) krij-
gen.
Bij het gebruik van het
MATREAD-
en het
MATPRINT-statement kunnen
matrices ingelezen
en uitgetypt worden, zonder dat in het statement
zelf de dimensie opgegeven wordt.
Voorbeelden:
---
120MAT READ
A,
P,Q
150
MAT PRINT
C 175MAT READ
K 190MAT
Getallen worden rij na rij ingelezen, totdat de matrix volledig ge-
vuld is. Gedeelten van matrices kunnen niet ingelezen worden.
~ _ _ _ _ ~ _~ - ~ ---
Voorbeeld
---
: 110DIM
L ( 2 , 3 ) , M(2,2)---__
150MAT READ
L ,M
160LET
L1(2,,2) = -2%L(2,2) I __LpM
210 END
5000
1, 2 , 3 5010 4 , 5 , 6 5 ^ 2 0 ? > -12 5030 0,7Regel
110geeft de dimensies aan.
Lis-een
twee (rijen) bij drie
(kolommen) matrix; M is een twee bij twee matrix. Het
MATREAD-statement
leest voor
Len
M
de getallen in die op de regels
5000en hoger staan
vermeld. Het
i saan te bevelen om de getallen zo
opte geven als in het
voorbeeld gedaan is. Het is dan gemakkelijk na te gaan welke getallen
bij een bepaalde matrix horen en op welke plaats ze in de matrix staan.
In regel
160wordt het element
LDaarna worden de twee matrices
opde terminal uitgetypt:
vermenigvuldigd met een faktor -2.
2 $ 2
1 2 3 3 -12
4
-10 6 O 7-
32-
-~ 3.20.4
Met behulp van de matrix-statements kunt u matrices optellen, aftrekken en
vermenigvuldigen. De dimensies van de matrices moeten overeenstemmen bij het
optellen en aftrekken.
Zoniet, dan geeft
decomputer een foutmelding en ver-
dere verwerking wordt gestopt.
Voorbeelden:
200 FIATK
= A S B220 MAT L = B
-
CEen matrix wordt met een scalar vermenigvuldigd door een statement van deze
vorm:
MATX
=(uitdrukking)
D.
X en D zijn matrices van gelijke dimensie en de uitdrukking tussen haakjes
is een salaire grootheid. De haakjes zijn nodig om aan te geven dat er met een
scalar en niet met een matrix verm-enigvuldigd
wordt. Slechts één opdracht
per regel is toegestaan.
Voorbeelden:
---
100 MATF
=(2)
ät G1 5 0 MAT A = ( 2 . 3 3
-
M)m
Q1 7 0 MAT B =
(EXP(X))
*
A3.20.5
Ident
---
iteitsmatrix
Een identiteitsmatrix wordt gedefinieerd door de vorm:
MAT
B
=IDN of
MAT R =IDN (uitdrukking, uitdrukking)
Wanneer de dimensies van B bekend zijn dan wordt van B een identiteitsmatrix
’
gemaakt. Voorwaarde is dat de matrix B vierkant is. In het tweede statement
wordt de dimensie van
Rbepaald door de uitdrukkingen tussen haakjes. Ook nu
geldt weer dat de uitdrukkingen zodanig zijn dat er een vierkante matrix ont-
staat.
Voorbeelden:
---
100 MATA
=IDN
150 MAT P =
IDN
(23WN i- 1 , 2MN+
I ) 200MAT
B =IDN
(Q,Q)250
MAT C
=IDN
( 1 , l )3.20.6
Transponeren
---
Een matrix wordt getransponeerd door het statement
bruiken. Matrix
Y en Z moeten dezelfde dimensies hebben. Y is de getranspo-.
neerde van
Z.Het gebruik van
MAT A = TRN(A)is niet toegestaan.
MAT Y =
TRN(Z)
te ge-
Voorbeelden: 300 MAT G
=TñN(H)
400MAT
U =TRN(V)
---
3.20.7
---
Inverteren
Matrix inversie
is mogelijk met het volgende statement:
I en
3zijn matrices. De dimensies zijn
z o ,dat inverteren mogelijk is. Ma-
MAT I
=INV(J)
trix I is de geinverteerde
vmmatrix
5 .Eet gebruik
--e- " G L L KAT A = INV(A) is n i e t toegeutaari.Voorbeelden: 500 MAT
K
=INV(W)
550
MAT A =INV(B)
---
3.20.8
---
ZER enCON
Alle elementen van een matrix worden gelijk nul gemaakt door het ZER-statement
te gebruiken. Hiermee is het ook mogelijk om de dimensie van een matrix te ver-
anderen tijdens de verwerking van het programma. Zie paragraaf
3.20.9:het
dimensioneren van matrices.
-
3 4-
Alle elementen van C krijgen de waarde n u l toegekend.
Het CON-statement kent aan alle elementen van een matrix d e waarde 1
(één)
toe.
Voorbeeld: HAT C = CON
Alle elementen van C worden vervangen door d e waarde 1 (één).
3.20.9 H e t dim-ensioneren van m a t r i c e s
...
Aan i e d e r e matrix wordt één l e t t e r toegekend.
I e d e r matrix moet g e d e f i n i e e r d worden i n een DIM-statement, opdat d e computer v o l d o e n d e r u i m t e kan r e s e r v e r e n v o o r h e t opbergen van d e matrix.
V o o r b e e l d : DIM
---
P ( 3 , 4 ) , Q ( 5 , 5 )H e t DIM-statement d e f i n i e e r t twee matrices, P en Q. P h e e f t
12
elementen en Qh e e f t er 2 5 . H e t eerste element van P i s P en het laatste i s P De elemen- t e n v a n Q lopen van Q
t o e g e s t a a n !
1 1
3 , 4 ' - -t o t QSy5. I n h e t DfM-statement z i j n a l l e e n g e t a l l e n
1 , J
D e dimensie opgegeven i n h e t DIN-statement mag g r o t e r z i j n dan d e w e r k e l i j k e dimensie waarmee gewerkt wordt.
D e p r e c i e z e dimensie van een matrix moet bekend z i j n v Ó Ó r d e berekening, w a a r i n d e matrix g e b r u i k t wordt. H i e r v o o r kunnen v i j f ?LAT-statements g e b r u i k t worden:
DIM C(M,N)'
MAT READ C(M,N)
r n T
c:
= ZER(lI,FT)2 = CÛî<(î"I,î<j
U T
C = IDN(N,N)D e eerste vier s t a t e m e n t s d e f i n i ë r e n C a l s een matrix met n/l r i j e n en N kolommen.
H e t v i j f d e statement s p e c i f i c e e r t C als een v i e r k a n t e matrix v a n N r i j e n en
N
kolommen.
M en N mogen b e h a l v e g e t a l l e n ook u i t d r u k k i n g e n z i j n . L e v e r t zo'n u i t d r u k k i n g geen g e h e e l g e t a l op dan wordt h e t meest n a b i j g e l e g e n k l e i n e r g e h e l e g e t a l genomen.
( 4 6 M< 5- -f -L = 4 ) . D i t g e l d t n i e t i n een DIM-staterent.
I_
D e z e l f d e s t a t e m e n t s mogen g e b r u i k t worden om een matrix opnieuw t e dimensioneren. D e nieuwe dimensie mag g r o t e r of k l e i n e r z i j n dan d e o o r s p r o n k e l i j k e g r o o t t e , z o l a n g d e nieuwe dimensie n i e t meer ruimte vereist dan opgegeven i s i n 'iet DIM-
-
36-
Voorbeeld:
---
110DLM
A ( 8 , 8 ) , B(8,8), C(8,8) 150 MATREAD
A ( 2 , 2 ) , B(2,2) 160 MAT C = ZER(2,2) L .. . .
. . .
200 MATA
=IDN(8,S)
210
MATREAD
B ( 4 , 4 ) , C(4,4)In regel
I10worden
VOOlle matrix
64plaatse
ereserveerd. In
de volgende regel (regel
150)wordt de precieze dimensie opgegeven
;
Aen B
worden ingelezen als
2bij 2 matrices. In regel
160wordt het ZER-statement ge-
~ -_ ~~
,
bruikt om van matrix
Ceen 2 bij
2matrix te maken en aan ieder element van
Cde waarde nul toe te kennen. Regel
200en regel
210kennen aan
A, Ben C een
nieuwe dimensie toe. De aanvankelijk toegekende dimensies en de ingelezen getal-
len worden uitgewist, voor B en
Cworden nieuwe waarden ingelezen en
Awordt
een identiteitsmatrix van
8rijen en
8kolommen.
De kombinatie van de matrix-statements met de gewone statements maakt BASIC tot
een simpele, en toch goed bruikbare programmeertaal. Wel wordt er nogmaals opge-
wezen dat de juiste dimensionering van matrices belangrijk is. Vooral bij het
vermenigvuldigen, optellen of aftrekken van matrices moet er telkens weer goed op
gelet worden dat de opgegeven dimensies kloppen.
I n d i t h o o f d s t u k z i j n een a a n t a l programma's opgenoven, d i e u meer i n z i c h t kunnen geven i n h e t programmeren i n BASIC.
4 . 1 AUs een hoek en een z i j d e van een r e c h t h o e k bekend z i j n , dan kun- nen d e l e n g t e s v a n de andere z i j d e n b e p a a l d worden, e v e n a l s d e andere s c h e r p e hoek, A l s d a t a worden a c h t e r e e n v o l g e n s hoek
A
( i n graden) en z i j d e KK
( i n vz) i n g e l e z e n .A
J,!
T
-
-
3 8-
4.2 D e wortel uit de som van drie getallen.
Als
de som kleiner dan nul is, wordt de mededeling "GEEN WORTEL" afgedrukt.B
f3 3 180r:
9 3 7 -7Let op het gebruik van het TAB-statement in de regels 100 en 101,
4 . 3 E e t bepalen van d e wortel uit een getal O 200 0 2 8 5 O300 O400
o
5 0 0 5 0 0 09á
9
-
07
4.7 R e t g e b r u i k van een GO CUB-staterr,ent.
4 . 8 Het u i t v o e r e n van k l e i n e g e t a l l e n
4.10 D e algemene o p l o s s i n g v a n ax2 + bx + c = O i s
-
b+
b 2-
4ac 2ax =
a f h a n k e l i j k v a n d e w a a r d e v a n ( bAls
bAls
b A l s bs c h i j n t d e r e d e d e l i n g "DE WORTEL2
ZIJG
IMAGINAIR"-
4 a c ) w o r d t gevonden:-
4acp0 dan t w e e r e ë l e w o r t e l s-
4ac=0 dan t w e e g e l i j k e r e e l e w o r t e l s-
4ac<0 d a n z i j n d e w o r t e l s i m a g i n a i r ; op d e t e r m i n a l ver- ~ A B 30 5L e t op h e t twee k e e r voorkornen van r e g e l 100. Alléén d e l a a t s t i n g e l e z e n r e g e l 100 k o m i n h e t prograrma voor.
4 . 1
1
Tabelleren2
4
5
-
4 4-
4 . i 2 Piet d e TAB-funktie kunnen ook f i g u r e n ( g r a f i e k e n ) getekend worden.
A l s u f i g u r e n laat u i t t e k e n e n i s een goede s c h a l i n g e r g belang- r i j k . Een r e g e l h e e f t n l . s l e c h t s 7 2 p o s i t i e s .
-
9 17
-
48-
4.15
9ptelling en vermenigvuldiging met een konctante in een matrixoperatie.4.16 D e b e p a l i n g van h e t geniddelde en d e s t a n d a a r d d e v i a t i e van een r i j g e t a l l e n . Het g e t a l n u l mag
-
n i e t t o t d e r i j behoren.-
os
I . I n l e i d i n g
Een t e r m i n a l i s een t e l e x - a p p a r a a t . V i a een t e l e f o o n l i j n staat de terminal i n k o n t a k t pet een computer. De kommunikatie t u s s e n d e coa.puter en d e ter-
minal v i n d t p l a a t s v i a h e t toetsenbord van d e t e r m i n a l . Hiermee kunnen programma's en gegevens i n de computer i n g e l e z e n worden. T i j d e n s d e verwer- k i n g door d e computer kunnen k o r r e k t i e s a a n g e b r a c h t worden, kan a a n v u l l e n d e i n f o r n a t i e gegeven worden en u i t v o e r v e r k r e g e n worden.
D e t e r m i n a l b e s t a a t u i t een a a n t a l onderdelen: