Algoritme van Euclides

Status
Niet open voor verdere reacties.

ronaldo12

Gebruiker
Lid geworden
10 mrt 2014
Berichten
48
Hallo,

Weet iemand hoe ik het Algoritme van Euclides in VBA-code kan krijgen?
Het is dus de bedoeling dat het programma van twee getallen de grootste gemene deler bepaalt.
Het kleinste getal van de twee wordt net zo vaak van het grootste afgetrokken tot er 0 overblijft, of een getal kleiner dan het grootste. Als er 0 overblijft zijn we klaar en is het kleinste getal de ggd. Zo niet, dan wordt het algoritme herhaald met kleinste getal(nu dus het grootste) en met wat er van het grootste over is gebleven.

Dit wordt aangetoond door in twee kolommen naast elkaar met kleurtjes steeds aan te geven wat er wordt afgetrokken van de twee getallen.

Wat hier rechts wordt afgebeeld heb ik in code nodig:
http://nl.wikipedia.org/wiki/Algoritme_van_Euclides

Hier wordt de grootste gemene deler van 12 en 5 bepaald, dit is 1.

Alvast bedankt!
 
Op de engelse wikipedia vindt je pseudo codes. Dit zou het algoritme moeten zijn:

Code:
function gcd(a, b)
    while a ≠ b
        if a > b
           a := a − b
        else
           b := b − a
    return a

Ik heb geen ervaring met VBA. Maar zo zou je er ook wel uit moeten komen.
 
In VBA kun je veel efficiënter met het "mod" commando werken.

Code:
Function GGD(A As Long, B As Long) As Long
    While (A > 0) And (B > 0)
        If A > B Then
            A = A Mod B
        Else
            B = B Mod A
        End If
    Wend
    GGD = IIf(A > 0, A, B)
End Function
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan