3.3. Funktioner og procedurer

Hvis man forsøger at skrive hele sit program ud i et, bliver det meget let uoverskueligt. Og hvis der oven i købet er nogle ting man skal gøre flere steder i samme program – eller måske endda i flere forskellige programmer – er det også lidt spild af tid at skrive dem igen og igen. Et middel til at undgå disse problemer er underroutiner. Underroutiner er programstumper der udfører en eller anden opgave og kan bruges (kaldes) fra flere forskellige steder i programmet. Når man kalder en underroutine, giver man den typisk nogle data (argumenter) som den skal bruge til at løse sin opgave, med i kaldet. Underroutiner findes i to varianter, funktioner og procedurer. Funktioner fungerer ganske som man lærer det i matematik. De regner et resultat ud ud fra de argumenter man giver dem. Procedurer fungerer lidt anderledes idet de ikke direkte giver et resultat. I stedet for kan de ændre på værdien af deres argumenter.

Principielt er der ingen forskel på funktioner og procedurer, men hvis man for eksempel med det samme skal regne videre på noget en underroutine finder ud af, er det praktisk at det er en funktion, så man bare kan sætte kaldet af den ind der hvor man skal bruge resultatet. Hvis det var en procedurer, ville man først være nødt til at kalde den med en variabel som et af argumenterne og dernæst sætte variablen ind på det sted hvor man skal bruge resultatet. Tilsvarende findes der også eksempler hvor det er mest hensigtsmæssigt at bruge en procedure frem for en funktion.