Subroutines en functies
1. Inleiding
2. Subroutines maken
3. Functies maken
4. Uitgebreid voorbeeld
top
1. Inleiding
Ik ga in deze tutorial het aanmaken van Subroutines en functies bespreken.
Als laatste ga ik ook een uitgebreid voorbeeld geven van het gebruik van de twee.
Een subroutine wordt gebruikt om een blok code te herhalen met of zonder bepaalde ingevoerde variabelen (argumenten).
Functies worden gebruikt om berekeningen te maken met of zonder bepaalde ingevoerde variabelen (argumenten) en de waarde terug te sturen.
Je zou dit bv. kunnen gebruiken als je constant een ambetante code moet schrijven die eigenlijk constant hetzelfde doet, behalve dan op 1 variabele na.
Dan laat je deze variabele invoeren en voer je een opdracht uit of stuur je een waarde terug.
top
2. Subroutines maken
Zoals al eerder gezegt is een subroutine een blok code. Deze blok code maak je op voorand en declareer je als een subroutine.
Je kan bepaalde variabelen meegeven aan de subroutine maar hierover dadelijk meer.
Nu kan je, waneer je wilt, overal in je applicatie de subroutine aanroepen.
Een subroutine blok stuurt geen waarde terug.
Deze zal enkel bewerkingen maken en output terugsturen.
Je kan argumenten meegeven (en vervolgens weergeven).
Een voorbeeld van een subroutine die automatisch een br zet.
<%
Sub zetBr
Response.Write "<br />"
End Sub
Response.Write 1
zetBr
Response.Write 2
%>
|
Je begint een subroutine met het keyword 'Sub' gevolgd door de sub-naam.
Daarna zet je alle acties die moeten gebeuren.
Om af te sluiten zet je End Sub.
Om hem aan te roepen gebruik je de sub-naam.
Als deze niet wordt gevonden wordt er een error gegeven.
Hier geef ik een voorbeeld van hoe je argumenten meegeeft.
Deze subroutine output tekst (net zoals Response.Write doet).
<%
Sub schrijf (tekst)
Response.Write tekst
End Sub
schrijf("halo")
%>
|
Deze subroutine zal een argument ontvangen.
Een argument is een gegeven dat je meegeeft aan je functie of subroutine zodat je hier berekeningen mee kan doen.
Je kan ook het argument (mogelijk na enkele berekeningen) weergeven.
Maar misschien iets handiger zou zijn dat je het berekend resultaat zou kunnen opvangen in een andere variabele.
Dit bespreek ik in volgend hoofdstuk.
top
3. Een functie maken
Bij een functie stuur je een waarde terug.
Deze waarde kan je opvangen in een variabele.
Zo kan je bv. een functie maken die een som maakt en de waarde terugstuurt.
<%
Dim resultaat
Function som(getal1, getal2)
som = getal1 + getal2
End Function
resultaat = som(2,4)
Response.Write resultaat
%>
|
Het declareren van een functie gaat het zelfde als bij een subroutine.
Je kan argumenten ontvangen en hiermee bewerkingen doen (in ons geval optellen -> +).
Vervolgens kan je deze waarde terugsturen door de functie gelijk te stellen aan deze waarde.
Zodat bij een aanroep hiervan de waarde kan worden opgevangen.
top
4. Uitgebreid voorbeeld
Hier volgt een 'uitgebreid' voorbeeld met bijbehorend commentaar.
<%
Dim bewerking
Dim getala, getalb
Dim resultaat
'variabelen declareren
Function som(getal1, getal2) 'deze functie stuurt een som terug
som = getal1 + getal2
End Function
Function verschil(getal1, getal2) 'verschil terugsturen
verschil = getal1 - getal2
End Function
Function product(getal1, getal2) 'product...
product = getal1 * getal2
End Function
Function quotient(getal1, getal2) 'en quotient
if getal2 = 0 Then 'als het tweede getal nul is mag hij niet proberen te delen! (deling door nul is onmogelijk)
quotient = "Delen door nul is onmogelijk!"
Else 'anders wel delen
quotient = getal1 / getal2
End if
End Function
getala = Round(request.querystring("getala"),2) 'de round gebruik ik om aan te duiden dat ik met getallen ga werken
getalb = Round(request.querystring("getalb"),2) 'anders zou hij de string waarde van getal1 en getal2 optellen (en dit resultaat geven 5 + 5 = 55
bewerking = request.querystring("bewerking")
select case bewerking
case "som": resultaat = som(getala, getalb) 'als er gekozen is voor som dan de som functie uitvoeren
case "verschil": resultaat = verschil(getala, getalb) 'verschil is gekozen
case "product": resultaat = product(getala, getalb) 'product is gekozen
case "quotient": resultaat = quotient(getala, getalb) 'quotient is gekozen
case else: resultaat = "Voer een bewerking uit." 'niets is gekozen OF er is met de header geknoeid
end select
Response.Write resultaat 'resultaat weergeven
'en hieronder het formuliertje
%>
<form name="bewerking" action="" method="get">
getal1: <input type="text" name="getala" /><br />
getal2: <input type="text" name="getalb" /><br />
bewerking:
<select name="bewerking">
<option value="som">som</option>
<option value="verschil">verschil</option>
<option value="product">product</option>
<option value="quotient">quotient</option>
</select>
<br />
<input type="submit" name="submit" value="bereken!" />
</form>
|
Het resultaat daarvan kan u hier bekijken.
Dit was het dan voor deze keer.
top
|