• No results found

Programmeren in BASIC op de terminal: instrukties en voorbeelden

N/A
N/A
Protected

Academic year: 2021

Share "Programmeren in BASIC op de terminal: instrukties en voorbeelden"

Copied!
77
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

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.

(2)

TECHNISCHE HOGESCHOOL EINDHOVEN NEDERLAND

AFDELING DER WERKTUIGBOULKUNDE

LABORATORIUM VOOR TECHNISCHE MECHANICA

E INDEOVEN UNIVERSITY OF TECHNOLOGY NETHERLANDS

DEPPXTMENT

OF

MECHAXICAL ENGINEERING

TABORAT0P.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.

(3)

DEEL I BASIC

-

PROGRJXMEERTAA-L

1 .

Inleiding

2.

Een voorbeeld

~~ 3.

BASIC

-

ctatenients

3.1

Variabelen

3.11

Enkelvoudige variabelen

3.12

Meervoudige variabelen

3.2

Getallen

3',3

Operatoren

3 . 4

Standaardfunkties

3 . 5

REM

3 . 6

DIM

3 . 7

DEF

3 . 8

READ

3.9

INPUT

3.10

LET

3. 1 1

IF

-

THEN

3.12

FOR en NEXT

3.13

GOT0

3.14 GOSUB

en RETURN

3 . 1 5

PRINT en TAB

3.16

RESTORE

3.17

STOP

3.18

PAUSE

3.19

END

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

CON

3.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 35

4 . Voorbeelden

37

(4)

-

b -

DEEL I1

DE TEENINAL

i .

Inleiding

1 . 1

De coatrol-unit

1.2

Het toetsenbord

1.3

Het afdrukmechanisme

1.4

Ponsband-ponser

1.5

Ponsband-lezer

2 .

Toegang tot de computer

3. Het werken met de computer

4 . Het inlezen van een nieuw programna

o f

van nieuwe data

5.

Het verbreken van de verbinding

6.

Het maken van ponsband

7.

Fouten korrektie

7.1

Korrektie van een

of

meer karakters

7 . 2

Korrektie van komplete regels

8. Conmand language statements

AHOY

RYE

CLEar

DAïa FROgram 2 '

SüBprogram

DELete

EXTr

act

LISt

RES

e

quence

JO

In

STOre

DEStroy

RUN

GO

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 1

(5)

Communiceren 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

om

een en ander weer eens

op

te

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.

(6)

- 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 = c

c

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

-

bd

x =

a f

-

c d y = ae

-

bd

A 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 % D

D 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)/G

(7)

De 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 e

g 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. Voor

de 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 LET

Y

= (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 e

r 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

(8)

- 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 met

5000

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

LET

x

= ( C ~ E

-

B*F)/G LET Y = ( A f F -B % D)/G PRIMT

"X

= ' I ; Z, "'Y ' I ; Y END

1 ,

2 , 4 2 , -7, 5

(9)

D i t programma m e t

-

d e z e d a t a ( r e g e l s

5000

en

5010)

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 O

1

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 e

twee 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,

E

De 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, F

Verder 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 l

0130

worden v o o r

E

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 .

(10)

- 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 .

(11)

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 t

kormnando 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 en

B 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 .

(12)

3. BASIC

-

STATEMENTS

3.1.

Variabelen

3.1.1.

Enkelvoudige variabelen

--- --___---

Een enkelvoudige variabele is een hoofdletter

of

een hoofdletter

gevolgd door één cijfer. Alle variabelen hebben als beginwaarde nul.

Eet

is dus niet nodig om dit,

a l s u

met nul als startwaarde wilt be-

ginnen, in het programma op te geven.

Een variabele in

BASIC

krijgt éé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:

-

één

positief 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.198

wordt 3

6.999

wordt

6

an wordt het meest nabij liggende kleiner

(13)

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

(14)

-

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

BASIC

toegestaan zijn:

+

> < - >= <= <> A + E A - E

A *

B A / B A + 2 . A > B A < B

A

>= B A <= B A = B

A

<> B

Betekenis

---

tel

E

bij

A op

trek E van

A

af

vermenigvuldig

A

met B

deel

A

door 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 s

gelijk 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/-€3

niet 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+D

dan wordt eerst

C

tot de macht

C

verheven, daarna wordt dit met B vermenig-

vuldigd en het resultaat wordt bij

A

opgeteld.

In

feite 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.D

Manneer 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.

(15)

Zijn alle bewerkingen in een formule van dezelfde soort dan wordt van links naar rechts de formule uitgerekend.

Voorbeeld

---

:

A

-

B

-

C Eerst wordt

E

van 4- afgetrokken, daarna C van het ver- schil.

A

/

B

/

C Eerst wordt A door

B

gedeeld, daarna het resultaat door C.

A

I. B I. C De computer verheft

A

tot de macht B en het resultaat tot de macht C.

(16)

-

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

(XI

1

normale logaritme

{ l o g

(X))

e-funktie (e

)

wortei uit

x

.

J X

absolute waarde van

X .

/X(

het grootste gehele getal kleiner dan

x

b.v.:

INT(3.17) =

3

INT(-3.17) = -4

10

X

bepaalt het teken van een variabele:

als

X

= O

dan

SGN(X) =

0

als

X

>

O

dan

SGN(X) = + I

als X

< U

dan

SGN(X) = - i

deze funktie genereert een random-getal,

X

mag de waarde i,

2 of

3

hebben (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.

(17)

3

.

5

-

REM

Het 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 120

REM

130 F32f 140 RG”i 150

PB%

200

mJ!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 KNOOPPUNTEN

L(N) : LENGTE VAKG\TERKSTAVEN

(N

NAAL)

...*...

DIT I S

EEN

SUBRGUTINE: VOOR

HET @FLOSSEN VAN

EEN STELSEL TIUI ZES LINEAIRE. VERGELIJKINGEN

(18)

-

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)

(19)

3.7

-

DEF

Wanneer 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 t

2 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 wederom

een 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.

(20)

-

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

of

hoger. Iedere keer dat ergens in een programma

READ

voorkomt, 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 y

L8,

F1

210 READ

K1

,

C9

3 . 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.:

140

INPUT

X, Y

Zodra de computer aan regel 140 toe is, gaat er in de terminal een belletje rin-

kelen

en ddt I s

voor

d e

gebruLker

h e t

sein em

de

twee getzllen

IE t e typen;

De

getallen worden geschei0en door een

komma.

Ma het

Intypei? w o r d t

de

DCCl’UD2T-toets

(zie pags’3

, )

Ingedrukt en de computer vervolgt zijn werk.

(21)

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:

100

LET X

= X + 1

-__---

256

LET

P3 = A f 2 +(Z-B)+K 314

LET

P = P2 = Q3 = 10/1.29 400

LET

B =

SIN(Y/(A+B))

+

14

In het derde voorbeeld wordt de waarde

(10/1.29)

toegekend aan drie variabelen:

P,

P2 en

43.

3.11

IF-THEN

Soms

willen we een aantal

r e g e l s

van 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

aldus

gestruktureerd:

_- -

In-regel

340

M

is.

A l s

dit waar is dan wordt het programma in regel

030

voortgezet. Is

aan

de

voorwaarde niet voldaan dan wordt de verwerking voortgezet met de eerstvolgende

regel-na

regel

340.

Regel

120

laat zien dat het ook mogelijk is

on

te verwijzen naar regels net een

wordt nagegaan

of de waarde van sin(X) kleiner dan of gelijk aan

(22)

-

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

100

dan zouden we als volgt

o n s

programma kunnen

schrijven:

100

PRINT

1 ,

SQR(1)

110 PRINT 2, SQR(2)

1 2 3

PRINT

3,

SQR(3)

. . .

. . .

. . . . . .

1070 PRINT 98, SQR(98)

1080 PRINT 99, (SQR(99)

1090 PRINT

100,

SQR(100)

1100

END

Op deze manier wordt

ons

programma

1 O i

regels lang. We kunnen het programma be-

langrijk inkorten door een FOR-TO met een NEXT-statement te gebruiken.

100

FOR I

= 1

TO

100 110

PRINT

I, SQR(1)

120 NEXT

I

130

END

-~

Dit programma geeft precies dezelfde resultaten.

Regel

100

geeft aan dat er wat moet gebeuren met de getalles

1

tot 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

(NEXT

I:

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 op

willen hogen met

3,

4 ,

-1

of

5 ,

etc., dan moeten we aan het FOR-TO-statement het woord STEP toevoegen.

(23)

In

dit geval worden de getallen 100, 95,

90,

85

....

10

en 5 genomen en verder

bewerkt. Wanneer STEP wordt weggelaten, wordt altijd een stapwaarde van

+ I

ver-

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

is

dan de eindwaarde (of kleiner bij een negatieve staF

dan slaat de computer alles over

tot

aan 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

f

FOR X

FOR Y

NEXT Y

!-

NEXT X

IFOR

X

FOR

Y

FOR

Z

NEXT

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

(24)

-

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

(25)

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 350

Na 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-ETURN

Binnen 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.

(26)

-

2 2

-

Voorbeeld:

_---

30 LET

X

=

A

f 10 40 LET Y = B

-

2 50 GOSUB 120 60 LET

X

= C 70 LET Y = D 80 GOSUE 120 90 LET P = C / 3 + D 100 P P I N T P i 1 0 STOP

120 LET Q = INT (X/Y>

130 PRINT Q

140 RETURN 150 END

(27)

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 puntkomma

4 .

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 .

(28)

-

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 n

P 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 n

1

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 t

X

a f g e d r u k t .

Na

h e t afdrukken v a n

X

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

PRINT

X,

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 n

Y

en Y en van d e d e l i n g

X: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 6

O 1 1 0

PRINT I

O120

NEXT I

(29)

De u i t v o e r i s :

1

2

3

4

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 6

4

4

Wordt 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 5

5

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??

X

IC

3 s

f.

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:

(30)

-

26

-

g .

0150

PRINT X; T A B ( 2 0 ) , Y; TAB(2;YN); Z

h.

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 r

is:

A B B C C

s

OM"

S

OM

(31)

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 f

aan uitgelezen.

100

READ

N

110

FOR

I

= 1

TO

N 120

READ

X

Voorbeeld:

---

*.

. . .

200

..

.

...

560 57 O 580 590

. . .

. . .

. . . .

. .

NEXT I

. . . . . .

. . .

:

,E

s

TORE. READ

Y

FûR

1

=

1

TO N

READ

X

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

aan

een variabele, die

i n

het programma niet ge-

bruikt wordt. Op deze manier kunnen getallen die ons een tweede

o f

daaropvolgende keer niet meer interesseren, overgesiagen worden.

3.17

-

STOL

Eet

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:

850

STOP

(32)

-

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

GO

wordt ingetypt, gevolgd door het indrukken van de

RETURN-toets, dan gaat de verwerking van het programma verder met het eerste

statement, volgend

op

het 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

(33)

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

te

voren 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,

B

en 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

B

van rratrix,

A af en ken het resultaat

toe aan matrix C.

A

en

B

moeten dezelfde dimensie

hebben.

Vermënigvuldig matrix

A

met matrix

B.

Het resultaat

is matrix C.

~~ - ~~ ~

Inverteer de vierkante matrix

A.

De matrices

A

en 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.

(34)

-

30

-

MAT C

= (K)*A

M A T C = A

MAT

C = CON

MAT C

= ZER

Vermenigvuldig matrix

A

met een waarde K. K mag

een getal of een uitdrukking zijn en moet altijd

tussen haakjes staan.

Matrix

C

wordt gekopieerd van matrix

A .

Ieder element van matrix

C

krijgt dewaarde 1-toege-

kend.

CON

betekenlt

constant.

Ieder element van matrix

C

krijgt de waarde nul.

(ZER

is een afkorting van

ZERO

(nul)).

MAT C

= IDN

Maak van matrix

C

de identiteitsmatrix, d.w.z. alle

e

1

ement

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.

(35)

Bij het gebruik van het

MAT

READ-

en het

MAT

PRINT-statement kunnen

matrices ingelezen

en uitgetypt worden, zonder dat in het statement

zelf de dimensie opgegeven wordt.

Voorbeelden:

---

120

MAT READ

A,

P,

Q

150

MAT PRINT

C 175

MAT READ

K 190

MAT

PRINT

Z , L

Getallen worden rij na rij ingelezen, totdat de matrix volledig ge-

vuld is. Gedeelten van matrices kunnen niet ingelezen worden.

~ _ _ _ _ ~ _

~ - ~ ---

Voorbeeld

---

: 110

DIM

L ( 2 , 3 ) , M(2,2)

---__

150

MAT READ

L ,

M

160

LET

L1(2,,2) = -2%L(2,2) I __Lp

PRINT

L,

M

210 END

5000

1, 2 , 3 5010 4 , 5 , 6 5 ^ 2 0 ? > -12 5030 0,7

Regel

110

geeft de dimensies aan.

L

is-een

twee (rijen) bij drie

(kolommen) matrix; M is een twee bij twee matrix. Het

MAT

READ-statement

leest voor

L

en

M

de getallen in die op de regels

5000

en hoger staan

vermeld. Het

i s

aan te bevelen om de getallen zo

op

te 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

160

wordt het element

L

Daarna worden de twee matrices

op

de terminal uitgetypt:

vermenigvuldigd met een faktor -2.

2 $ 2

1 2 3 3 -12

4

-10 6 O 7

(36)

-

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.

Zo

niet, dan geeft

de

computer een foutmelding en ver-

dere verwerking wordt gestopt.

Voorbeelden:

200 FIAT

K

= A S B

220 MAT L = B

-

C

Een matrix wordt met een scalar vermenigvuldigd door een statement van deze

vorm:

MAT

X

=

(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 MAT

F

=

(2)

ät G

1 5 0 MAT A = ( 2 . 3 3

-

M)m

Q

1 7 0 MAT B =

(EXP(X))

*

A

3.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

R

bepaald door de uitdrukkingen tussen haakjes. Ook nu

geldt weer dat de uitdrukkingen zodanig zijn dat er een vierkante matrix ont-

staat.

(37)

Voorbeelden:

---

100 MAT

A

=

IDN

150 MAT P =

IDN

(23WN i- 1 , 2MN

+

I ) 200

MAT

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)

400

MAT

U =

TRN(V)

---

3.20.7

---

Inverteren

Matrix inversie

is mogelijk met het volgende statement:

I en

3

zijn matrices. De dimensies zijn

z o ,

dat inverteren mogelijk is. Ma-

MAT I

=

INV(J)

trix I is de geinverteerde

vm

matrix

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 en

CON

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.

(38)

-

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).

(39)

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 Q

h 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-

(40)

-

36

-

Voorbeeld:

---

110

DLM

A ( 8 , 8 ) , B(8,8), C(8,8) 150 MAT

READ

A ( 2 , 2 ) , B(2,2) 160 MAT C = ZER(2,2) L .

. . .

. . .

200 MAT

A

=

IDN(8,S)

210

MAT

READ

B ( 4 , 4 ) , C(4,4)

In regel

I10

worden

VOO

lle matrix

64

plaatse

ereserveerd. In

de volgende regel (regel

150)

wordt de precieze dimensie opgegeven

;

A

en B

worden ingelezen als

2

bij 2 matrices. In regel

160

wordt het ZER-statement ge-

~ -_ ~~

,

bruikt om van matrix

C

een 2 bij

2

matrix te maken en aan ieder element van

C

de waarde nul toe te kennen. Regel

200

en regel

210

kennen aan

A, B

en C een

nieuwe dimensie toe. De aanvankelijk toegekende dimensies en de ingelezen getal-

len worden uitgewist, voor B en

C

worden nieuwe waarden ingelezen en

A

wordt

een identiteitsmatrix van

8

rijen en

8

kolommen.

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.

(41)

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 K

K

( i n vz) i n g e l e z e n .

A

J,!

T

-

(42)

-

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 180

r:

9 3 7 -7

Let op het gebruik van het TAB-statement in de regels 100 en 101,

(43)

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 0

(44)

9

-

07

(45)

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

(46)

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 2a

x =

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 ( b

Als

b

Als

b A l s b

s 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 5

L 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.

(47)

4 . 1

1

Tabelleren

2

4

5

(48)

-

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 .

(49)
(50)

-

9 17

(51)
(52)

-

48

-

4.15

9ptelling en vermenigvuldiging met een konctante in een matrixoperatie.

(53)

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.

(54)

-

os

(55)

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:

-

d e z.g. c o n t r o l u n i t

-

5 e t toetsenbord

-

a f d r u k mechanisme

-

ponsband ponser

-

ponsband l e z e r

In

onderstaande f i g u u r i s d e t e r m i n a l weergegeven. - I

I

OFF

Referenties

GERELATEERDE DOCUMENTEN

Advies/standpunt Het Zorginstituut is anders dan het CIZ van oordeel dat een grondslag VG wel kan worden vastgesteld omdat bij verzekerde geen sprake is van op verstandelijk

Wat ter wereld ziet God dan toch in de mens, Dat Hij wordt de ‘Man aan het kruis’.. De Farizeeërs samen, ja ze kijken

Elke overgang naar een nieuwe generatie zorgt immers voor meer afstand tot het gedachtegoed van de oprichter en dwingt tot discussies over alle drie de domeinen (bedrijf, familie

wil doelbewust mensen uit verschillende maatschappelijke groepen in één partijverband verenigen; het in harmonie brengen van belangen is nodig om een zo groot mogelijk welzijn voor

Wanneer een doosje nog leeg is (bijvoorbeeld in het geval van een variabele waaraan nog niet iets is toegekend) wordt de naam van het doosje

The first step in designing an EXSPECT prototype for an information system consists of designing the control and data flow of the various processors of the

Hierbij is deels een nieuw fietspad over de dijk aangelegd zodat het fietspad langs perceel Peizerweg 14 te Bunne toegevoegd is aan de huiskavel en nu aan de openbaarheid

Vast te stellen het bestemmingsplan “Groningerweg 23a, 27 en 27a te Eelderwolde” met identificatienummer NL.IMRO.1730.BPRecrwonGronweg-0401, gewijzigd en aangevuld zoals in