de "sub" command

Cursussen, tutorials
Plaats hier uw bijdrage.

de "sub" command

Berichtdoor anthonio » za aug 11, 2007 3:52 pm

Aangezien ik weet (uit eigen ervaring) dat vele beginnende programmeurs de sub niet altijd goed verstaan (ondanks de help file).
Hier dus een korte tutorial.
De sub is bedoeld om in een programma waar meermaals hetzelfde stukje code voorkomt, samen te brengen in 1 stuk code.
Dit is ten eerste VEEL overzichtelijker, gemakkelijker aanpasbaar en je code kan hierdoor serieus worden ingekort.
Een voorbeeld:

Code: Selecteer alles
notice "1"
timer 1000, [Delay]
wait
[Delay]
timer 0
notice "2"
timer 1000, [Delay2]
wait
[Delay2]
timer 0
notice "3"
timer 1000, [Delay3]
wait
[Delay3]
timer 0
notice "4"


Zoals je ziet heb ik hier 3maal een timer gebruikt.
De code word al zeer lang door gewoon weg die timer, die simpelweg vervangen kan worden door een sub.

Code: Selecteer alles
notice "1"
call delay
notice "2"
call delay
notice "3"
call delay
notice "4"

sub delay
timer 1000, [Delay]
wait
[Delay]
timer 0
end sub


Zoals je kan zien word de code al iets ingekort.
Dit is natuurlijk maar een kort voorbeeld maar je kan je wel inbeelden dat bij zeer grote programma dit zeer handig kan zijn.
Nog een voordeel van de sub:
Stel ik wil de seconden verhogen of verlangen dan moet ik in men eerste voorbeeld toch al wat beginnen zoeken, terwijl bij mijn sub maar alleen de 1000 moet aanpassen.
Dual boot: Ubuntu 8.04 - WIndows XP SP2 (via VMware) - Windows Vista 32bit - Toshiba L40 - Dual Core @ 1,76GHz - 1GB RAM - 120GB HDD - VDSL Connection
Avatar gebruiker
anthonio
 
Berichten: 281
Geregistreerd: zo mei 20, 2007 9:58 pm

Berichtdoor Gordon » za aug 11, 2007 5:14 pm

Wow, ik ben zeer bevreesd voor CALL.
Ik hoop dat we het hier goed in detail zullen beschouwen.
Mijn grootste vrees is het feit dat een CALL niet global is.
Dus als ik jouw voorbeeld even wijzig dan gaat het al
moeizamer.

Code: Selecteer alles
notice "1"
call delay
notice "2"
call delay
notice "3"
call delay
notice "4"
wait


'[label]       kan niet buiten de sub staan
'print "hier lukt het niet"
'return

sub delay
gosub [label]
wait
[label]
print "hier gaat het nog"
print "omdat de gosub binnen (sub - end sub) staat"
return
end sub



Ik heb soms zeer omslachtig moeten programmeren....

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am


Keer terug naar Leren programmeren met Liberty BASIC

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron