hallo!
ich habe das problem, dass in meinem gauss-algorithmus ein überlauffehler auftritt, den ich allerdings durch eine msgbox einen schritt davor unterbinden und anschließend die ganze prozedur beenden möchte.
das kriege ich absolut nicht hin
ich gebe mal die variablenbereiche und die besagte stelle ein.
keine ahnung, ob das ausreicht, um mir weiterzuhelfen, falls nicht, setze ich noch mehr rein.
ich dachte mir irgendwie so, dass ich einfach eine if-then-bedingung einbaue, so ungefähr "wenn dieses array den wertebereich übersteigt, dann:
msgbox "[...]" und end, ansonsten: weiter fortfahren.
ist leider leichter gesagt als getan. kann mir jemand behilflich sein?
danke
Edit by Manschula: Thema verschoben
ich habe das problem, dass in meinem gauss-algorithmus ein überlauffehler auftritt, den ich allerdings durch eine msgbox einen schritt davor unterbinden und anschließend die ganze prozedur beenden möchte.
das kriege ich absolut nicht hin
ich gebe mal die variablenbereiche und die besagte stelle ein.
Visual Basic-Quellcode
- Sub gaussalgo(n%, A() As Double, x() As Double)
- Dim max As Double, s As Double, skal() As Double
- Dim z%, k%, y%, kmax%, zmax%, merk() As Integer
- ReDim merk(n), skal(n)
- [...]
- For k = 1 To n - 1
- max = skal(k) * Abs(A(k, k))
- kmax = k
- zmax = k
- For z = k To n
- For y = k To n
- If skal(z) * Abs(A(z, y)) > max Then
- zmax = z
- kmax = y
- max = skal(z) * Abs(A(z, y))
- End If
- Next
- Next
- If zmax <> k Then
- For z = k To n + 1
- s = A(k, z)
- A(k, z) = A(zmax, z)
- A(zmax, z) = s
- Next
- s = skal(k)
- skal(k) = skal(zmax)
- skal(zmax) = s
- End If
- If kmax <> k Then
- For y = 1 To n
- s = A(y, k)
- A(y, k) = A(y, kmax)
- A(y, kmax) = s
- Next
- z = merk(k)
- merk(k) = merk(kmax)
- merk(kmax) = z
- End If
- For y = k + 1 To n
- s = A(y, k) / A(k, k) ' überlaufstelle
- A(y, k) = 0#
- For z = k + 1 To n + 1
- A(y, z) = A(y, z) - s * A(k, z)
- Next
- Next
- Next
keine ahnung, ob das ausreicht, um mir weiterzuhelfen, falls nicht, setze ich noch mehr rein.
ich dachte mir irgendwie so, dass ich einfach eine if-then-bedingung einbaue, so ungefähr "wenn dieses array den wertebereich übersteigt, dann:
msgbox "[...]" und end, ansonsten: weiter fortfahren.
ist leider leichter gesagt als getan. kann mir jemand behilflich sein?
danke
Edit by Manschula: Thema verschoben
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Blauarschbube666“ ()