nå en var hurtigere men nu har jeg aligevel brugt tiden på det så her kommer det.
Jeg har aldrig skrevet en linie VBA så jeg kan tage fejl men jeg vil mene det er rimlig tæt på ;)
GCD finder Greatest common divisor ( se
http://en.wikipedia.org/wiki/Greatest_common_divisor )
Sub GCD(byval tal1 as integer, byval tal2 as integer, byref resultat as integer) // erklærer en funktion/metode ved havn GCD som tager 3 integer argumenter tal1, tal2 og resultat. tal1 og tal2 bliver passed by value og resultat bliver passed by reference.( se
http://en.wikipedia.org/wiki/Pass-by-reference )
dim taeller as integer, naevner as integer, rest as integer // i funktionen erklæres tæller,nævner og rest som integer.
If(tal1 > tal 2) then // conditional statement, Hvis tal1 er større end tal2 så udføres de næste 2 linier (indtil else)
taeller = tal1 // tal1's værdi tildeles til tæller.
naevner = tal2 // tal2's værdi tildeles til nævner.
else // ellers udføres
taeller = tal2 // samme som ovenfor
naevner = tal1
end if // slut på conditional statement
rest = taeller Mod naevner // rest sættes til værdi. tæller modolus nævner (se
http://en.wikipedia.org/wiki/Remainder ,
http://en.wikipedia.org/wiki/Modulus , 10 % 3 = 1 )
Do while rest > 0 // loop statement, Udføres så længe rest er større end 0
taeller = naevner // assignment af nævner til tæller
næaevner = rest // assignment
rest = taeller Mod naevner // som vist tidligere
loop // slut på loop
resultat = naevner // nævner assignes til resultatet.
end sub // slut på funktionen.
Sub checkGCD() // endnu en funktion som ikke tager nogen argumenter
dim A as integer, B as integer, R as integer // variabel erklæring af integers A,B og R
A=9 // R assignes tallet 9
B=24
GCD A B, R // funktionen GCD udføres med argumenterne A, B og R, når funktionen er kaldt vil R have resultatet
End sub // slut på funktion.