AW: Function - falsches Ergebnis
22.07.2005 22:56:21
Erich
Hallo Matze,
vielleicht bringen folgende Beispiele den Groschen ins Rollen:
Sub Test()
MsgBox "(1) " & Kubiksumme2(3, 4)
MsgBox "(2) " & Kubiksumme2(3, 4)
MsgBox "(3) " & Kubiksumme3(3, 4)
MsgBox "(4) " & Kubiksumme4(3, 4)
MsgBox "(5) " & Kubiksumme5(3, 4)
MsgBox "(6) " & Kubiksumme6(3, 4)
MsgBox "(7) " & Kubiksumme7(3, 4)
End Sub
Function Kubiksumme1(ar1 As Long, ar2 As Long) As Double
'liefert 0, weil der Double-Variablen 'Kubiksumme1' kein Wert zugewiesen wird.
'(Woher soll die Funktion wissen, ob w1, w2 oder w3 als Ergebnis zu liefern wäre?)
Dim w1 As Double, w2 As Double, w3 As Double
w1 = ar1 ^ 3
w2 = ar2 ^ 3
w3 = w1 + w2
End Function
Function Kubiksumme2(ar1 As Long, ar2 As Long) As Double
'liefert den Wert von Kubiksumme2 an die aufrufende Prozedur
Dim w1 As Double, w2 As Double, w3 As Double
w1 = ar1 ^ 3
w2 = ar2 ^ 3
w3 = w1 + w2
Kubiksumme2 = w3
End Function
Function Kubiksumme3(ar1 As Long, ar2 As Long) As Double
'dito, nur kürzer
Dim w1 As Double, w2 As Double
w1 = ar1 ^ 3
w2 = ar2 ^ 3
Kubiksumme3 = w1 + w2
End Function
Function Kubiksumme4(ar1 As Long, ar2 As Long) As Double
'dito, noch kürzer
Kubiksumme4 = ar1 ^ 3 + ar2 ^ 3
End Function
Function Kubiksumme5#(ar1&, ar2&)
'dito, noch kürzer (mit # für Double, & für Long)
Kubiksumme5 = ar1 ^ 3 + ar2 ^ 3
End Function
Function Kubiksumme6#(ar1&, ar2&): Kubiksumme6 = ar1 ^ 3 + ar2 ^ 3: End Function
'dito, noch kürzer
Function Kubiksumme7(ar1, ar2): Kubiksumme7 = ar1 ^ 3 + ar2 ^ 3: End Function
'dito, noch kürzer, aber wegen fehlernder Typdeklarationen fehlerträchtig
Grüße aus Kamp-Lintfort
Erich