Übergabe Feldvariablen in Funktionen
24.09.2003 09:58:24
Marcel
Ich versuche eine Iterationsschleife zu programmieren, die Koeffizienten berechnet. Das Verfahren konvergiert, d.h. die Koeffizienten werden in jeder FOR-Schleife neu berechnet und ersetzt (ReDim).
Die eigentliche Formel ist in einer Funktion außerhalb des Hauptprogrammes definiert. Warum kann ich in einer Funktion keine Feldvariable übergeben? ICh habe den Code unten angefügt, wer kann mir sagen was damit nicht stimmen könnte, zermarter mir schon stundenlang den Kopf ???
Wer kann mir helfen, weiss mir einfach keinen Rat mehr, Hilfe dringend erwünscht !!! Vielen Dank, Marcel
'Newton-Verfahren zur Bestimmung der Koeffizienten "a" und "b"'
'Deklarieren der Variablen'
Dim n As Integer, nmax As Integer
Dim AbbruchX As Double, AbbruchY As Double
Dim a() As Double, b() As Double
'maximale Anzahl an Iterationsschritten'
nmax = 100
If nmax > 100 Then
nmax = 100
End If
'Festlegen der Feldgröße der für dynamische Feldvariablen (ReDim)'
ReDim a(1 To nmax) As Double, b(1 To nmax) As Double
'Genauigkeitsschranke als Abbruchkriterium'
AbbruchX = 0.0001
AbbruchY = 0.0001
'Startwerte der Iteration'
a(1) = 0
b(1) = 0
'Iterationsschleife des Newton Verfahrens'
For n = 2 To nmax
'neue Näherungen für Koeffizienten "a" und "b" berechnen'
b(n) = 2
a(n) = F1A(J, b())
Next n
End Sub
'Nach Ende der Hauptprozedur werden die Funktionen definiert'
Function F1A(J, b()) As Double
Dim Feld3() As Double, S3 As Double
ReDim Feld3(J)
S3 = 0
For Zähler = 2 To J
Feld3(Zähler) = EFUNKT ^ (-2 * b() * (Cells(Zähler, 3) ^ 2))
S3 = S3 + Feld3(Zähler)
Next
F1A = S3
End Function