Gibt es in VB ein Function die testen kann ob ein Zahl ungerade oder gerade ist? und wenn nicht, was würde in einer selbstgeschriebenen stehen?
Dankeschön schonmal
cu, Paul
Gibt es in VB ein Function die testen kann ob ein Zahl ungerade oder gerade ist? und wenn nicht, was würde in einer selbstgeschriebenen stehen?
Dankeschön schonmal
cu, Paul
hi
eine Funktion die das macht kenne ich nicht aber mit meiner geht es:
Function IsGerade(ByVal a_lngZahl As Long) As Boolean
If a_lngZahl / 2 = a_lngZahl \ 2 Then
IsGerade = True
Else
IsGerade = False
End If
End Function
Gruss, Giuseppe
Hallo Leute,
es geht noch kürzer
Function IsGerade(Zahl As Long) As Boolean
IsGerade = (Zahl Mod 2 = 0)
End Function
Anmerkung: X mod Y ergibt den Rest der Ganzzahldivision X/Y
Ich hoffe es hilft dir weiter!
Markus
Function IsGerade(Zahl As Long) As Boolean
IsGerade = (Zahl Mod 2 = 0)
End Function
Cool mit dem Mod ist mir gar nicht in den sinn gekommen.
gruss, Giuseppe
Hallo und noch eine Variante
Function IsGerade(ByVal Zahl As Long) As Boolean
IsGerade = ((Zahl And 1) = 0)
End Function
Diese Variante müsste in der Ausführung noch einiges schneller sein, da sie sehr maschinennah ist. Der Bit-Operator AND kann vom Compiler direkt in den entsprechenden Maschinenbefehl umgesetzt werden, wohingegen der Mod-Befehl, der insgesamt um einiges mächtiger ist, was hier aber nicht gebraucht wird, vom Compiler in mehrere Zeilen Code umgesetzt werden muß.
Allerdings ist bei heutigen Computern die Geschwindigkeit nicht mehr so ausschlaggebend.
CU
Markus
Hallo
Wenn wir schon beim optimieren sind…
so gehts glaubs noch ein wenig schneller
function isgerade(byval zahl as long) as boolean
isgerade = not(zahl and 1)
end function
oder
function isungerade(byval zahl as long) as boolean
isungerade = zahl and 1
end function
gruss Giuseppe
Stimmt!
CU Markus