home *** CD-ROM | disk | FTP | other *** search
/ Pokey's Magazine 4 / Pokeys_Magazine_04_1991_01___nl_Side_B.atr / les.txt < prev    next >
Text File  |  2023-02-26  |  6KB  |  1 lines

  1. ù⑦Welkom bij alweer de derde aflevering van de Turbo-cursus. De opdracht van de tweede was duidelijk moeilijker dan de eerste. Veel verkeerde oplossingen.¢¢Ik begin gelijk maar met de juiste oplossing en geef er uitleg bij. Zie de rubriek post voor verdere oplossingen.¢¢De opdracht was:¢¢Laat via een programma alle mogelijke vermenigvuldigingen zien, die bestaat uit twee of drie gehele getallen, met de uitkomst honderd.¢¢Dit is de oplossing:¢¢10 A=1:B=1¢20 IF A*B=100 THEN ? A;"*";B;"=";100¢30 A=A+1:IF A<101 THEN 20¢40 A=B:B=B+1:IF B<11 THEN 20¢50 A=1:B=1:C=1¢60 IF A*B*C=100 THEN ? A;"*";B;"*";C;"=";100¢70 A=A+1:IF A<101 THEN 60¢80 A=B:B=B+1:IF B<11 THEN 60¢90 B=C:C=C+1:IF C<5 THEN 60¢¢Ik zal proberen regel voor regel uitleggen wat er gebeurt.¢¢Regel 10¢--------¢Ik ga eerst zoeken naar alle uitkomsten met twee getallen. Ik doe dat mbv de variabelen A en B. A en B zijn aan het begin 1! Dus niet 0 want 0*iets kan nooit 100 zijn!¢¢Regel 20¢--------¢Hier vindt de controle plaats. Als A * B = 100 dan laat het programma dat zien.¢¢Regel 30¢--------¢Hier verhogen we A met 1. Zo kunnen we A tot honderd blijven verhogen. B=1, dus het programma test eerst 1*1, dan 2*1 dan 3*1 enz. Zolang A kleiner is dan honderd (IF A<100) springt het programma terug naar regel 20.¢¢Regel 40¢--------¢A is nu groter dan honderd geworden. Nu verhogen we B met 1. We maken nu niet weer van A 1, want dan gaan we getallen testen die al geweest zijn. B wordt nu 2. Stel dat we van A weer 1 maken, dan test de computer 1*2. Dit is al gedaan toen A 2 was en B 1. (1*2 is het zelfde als 2*1)!!!!!. Daarom tellen we er 1 bij B op en maken A gelijk aan B!!!. De eerst volgende test wordt dan 2*2. Deze is nog niet eerder geweest.¢Ook wordt hier getest of B kleiner is dan 11. Waarom telt B niet tot honderd? Omdat A of groter is dan B of gelijk is dan B. Als B 11 is dan is A minimaal ook 11. 11*11=121. 121 is groter dan 100, dus niet nodig om verder te testen.¢¢De rest van het programma is volgens het zelfde principe. Ik leg het niet verder uit, want ik ga er van uit dat het bovenstaande duidelijk genoeg is.¢¢Er kunnen programma-regels bij elkaar gezet worden, maar het wordt er dan niet duidelijker op. Zie POST voor zeer korte oplossingen!!¢¢¢TURBO-CURSUS III¢----------------¢¢¢In deze aflevering behandelen we:¢¢1>> De FOR-NEXT loop¢2>> STRING-variabelen¢¢¢¢De FOR-NEXT loop.¢-----------------¢¢Een for-next is eigenlijk gewoon een teller. Een teller kan er zo uit zien:¢¢10 A=1¢20 A=A+1¢30 IF A<30 THEN GOTO 20¢40 VERVOLG VAN PROGRAMMA¢¢Het programma telt van 1 tot 30 in regel 20 en 30. Het gaat pas verder met regel 40 als A=30. Tussen regel 20 en 30 kun je natuurlijk nog wat opdrachten doen zodat deze opdrachten 30* worden gedaan.¢¢Een simpeler oplossing is de volgende:¢¢10 FOR A=1 TO 30¢20 NEXT A¢30 VERVOLG VAN PROGRAMMA¢¢Ook dit is een teller van 1 to 30. Als het programma een NEXT A tegenkomt, kijkt hij of hij al de waarde heeft, die achter TO staat. Zoniet springt hij terug naar de eerst volgende opdracht na(!) FOR.¢¢Het is een fijne methode om de computer een herhaling van opdrachten te laten uitvoeren. ¢¢10 FOR P=1 TO 3¢20 PRINT P¢30 NEXT P¢¢Geeft als resultaat het volgende:¢¢1¢2¢3¢¢De FOR-NEXT hoeft niet per stap van 1 te lopen. Bij FOR-NEXT kun je de instructie STEP gebruiken.¢¢10 FOR P=2 TO 10 STEP 2¢20 PRINT P¢30 NEXT P¢¢geeft het volgende:¢¢2¢4¢6¢8¢10¢¢¢Het getal achter STEP mag elk willekeurig getal zijn. bv. 1, 1.5, -2.¢Dus zowel positief, negatief, geheel als niet geheel.¢¢Een lus die achteruit loopt:¢¢10 FOR P=10 TO 5 STEP-1¢20 NEXT P¢¢¢Je mag ook een lus binnen een lus plaatsen:¢¢10 FOR P=1 TO 10¢20   FOR Q=1 TO 5¢30   NEXT Q¢40 NEXT P¢¢De inspringing hoef je niet zelf te regelen, dat doet turbo-basic voor je. Dit is makkelijk om te zien hoe een lus in elkaar zit. Next p staat recht onder for p.¢In het bovenstaande voorbeeld wordt 10* van 1 to 5 geteld!!¢¢Lussen mogen NIET door elkaar heen lopen!!!!!¢¢10 FOR P=1 TO 10¢20   FOR Q=1 TO 5¢30 NEXT P¢40   NEXT Q¢¢DIT MAG NIET!!!!!!!!!!!!!!!!!!!!!!¢¢¢10 FOR P=1 TO 10¢20  FOR Q=1 TO 10¢30   FOR R=1 TO 10¢40   NEXT R¢50  NEXT Q¢60 NEXT P¢¢DIT MAG WEL!!! DE LUSSEN LOPEN NIET DOOR ELKAAR HEEN.¢¢10 FOR P=1 TO 10¢20   FOR Q=1 TO 10¢30   NEXT Q¢40   FOR R=1 TO 10¢50   NEXT R¢60 NEXT P¢¢OOK DIT MAG!!!¢¢Probeer zelf nog wat te expirimenteren met verschillende lussen. Zet er ook eens een print opdracht tussen om te kijken hoe de computer telt.¢¢¢STRING-VARIABELEN.¢------------------¢¢Vorige maand hebben we gekeken naar nummerieke variabelen. Deze maand kijken we naar STRING ($) variabelen.¢¢A=1 is een nummerieke variabele.¢A$="HALLO" is een string variabele.¢¢Let op het $ (string) teken!!!!¢¢We kunnen in A$ ieder willekeurige reeks letters of cijfers kwijt.¢¢Als A$ uit cijfers bestaat, ziet de computer dit als text!!! Probeer er niet mee te rekenen, want je krijgt een ERROR!!¢¢Wel moeten we de computer aan het begin van het programma vertellen, dat we met een string gaan werken. De computer houdt dan een stukje geheugen vrij, waar we onze string in kunnen bewaren. Dit doen we met de instructie DIM.¢¢10 DIM A$(100)¢¢zorgt er voor dat er 100 geheugen plaatsen worden vrij gehouden voor de string A. Dit mag binnen een programma slechts 1 maal gebeuren. Je mag natuurlijk wel meerdere strings tegelijk gebruiken.¢¢10 DIM A$(100),B$(1000)¢¢A$ kan 100 tekens lang worden en B$ kan 1000 tekens lang worden.¢¢¢10 DIM A$(20),B$(20)¢20 A$="HALLO,"¢30 B$="IK BEN ATARI"¢40 ?A$¢50 ?B$¢60 ?A$,B$¢70 ?A$;" ";B$¢¢Geeft de volgende resultaten:¢¢In regel 40 en 50:¢¢HALLO¢IK BEN ATARI¢¢In regel 60:¢¢HALLO    IK BEN ATARI¢¢In regel 70¢¢HALLO IK BEN ATARI¢¢¢Probeer ook met strings eens wat uit. In de volgende aflevering gaan we strings manipuleren, zodat we zullen zien dat er vele toepassingen zijn. De volgende keer gaan we een programma maken dat er voor zorgt dat communicatie tussen computer en gebruiker mogelijk wordt.¢¢Veel plezier bij het zelf uitvogelen van het gebruik van strings en for-next loops.¢¢¢Tot de volgende Turbo-Cursus.¢¢John Maris¢¢¢¢¢