
|
Programmeertips Genic Clubguide, 00-00-00
P R O G R A M M E E R T I P S
===============================
INLEIDING
Programmeertips is een nieuwe rubriek, voor en door de
lezers van de ClubGuide. In deze rubriek horen handige PEEKs
en POKEs, kleine programmaatjes en handige programmeertruuks
thuis.
Omdat ClubGuide #9 nog maar net uit is als ik dit schrijf
heb ik nog geen reakties ontvangen. Ik heb daarom zelf maar
een tip geschreven. Vanaf ClubGuide #11 hoop ik bergen tips
van u te kunnen plaatsen. Alles is van harte welkom.
Stuur uw programmeertips naar:
Stichting GENIC
T.a.v. Stefan Boer
Postbus 258
8470 AE Wolvega
WILLEKEURIGE GETALLEN IN BASIC
Het komt vaak voor dat u toevalsgetallen nodig hebt in
Basic. Basic heeft daarvoor de functie RND(X). Er zit echter
een nadeel aan het RND commando: bij verkeerd gebruik geeft
hij elke keer dezelfde "toevals"getallen. Probeert u maar
eens:
10 FOR I = 1 TO 10
20 PRINT RND(1)
30 NEXT
Als u het voor de tweede keer RUNt, dan zult u zien dat het
weer precies dezelfde getallen zijn.
Er is echter wel een oplossing. Voordat ik die geef, zal ik
eerst even de syntax van het RND commando behandelen.
U kunt bij RND(X) voor X de waarde 0, een positieve of een
negatieve waarde invullen. Die waardes hebben het volgende
gevolg:
0: U krijgt het vorige RND getal nog eens.
+: U krijgt het volgende RND getal uit de lijst.
-: U krijgt het getal met nummer X uit de lijst.
We maken gebruik van de variabele TIME. Dat is een teller
die 50 of 60 keer per seconde (afhankelijk van VDP(10))
wordt verhoogd. Een heleboel Basic handboeken raden u aan de
instruktie RND(-TIME) herhaaldelijk te gebruiken. Dat geeft
echter geen mooie gespreide toevalsgetallen. Beter is de
computer aan het begin van het programma op een willekeurige
plaats in de lijst te zetten met R=RND(-TIME) en daarna
willekeurige getallen op te vragen met RND(1).
Tot slot nog even dit: de functie RND(X) geeft een getal
tussen 0 en 1. U kunt daar een ander bereik van maken door
het met het juiste getal te vermenigvuldigen.
Voorbeeld: u wilt een geheel getal tussen 50 en 75
(inclusief grenzen, dus [50,75] ). De volgende Basic regel
is dan van toepassing:
A = 50 + INT(26*RND(1))
En niet (zoals je zou verwachten) 25*RND(1)! 25*.99999999
levert namelijk een getal op dat kleiner is dan 25, en dus
door INT afgerond wordt naar 24. A zou dan als hoogste
waarde 74 aan kunnen nemen.
Stefan Boer
|