Visual Basic Application Dokumentation
In dieser Category werden VBA Anwendungen dokumentiert.
VBA Anwendung arc_sinus
Die Aufgabenstellung ist, die absolute Länge einer Sinus-Welle zu berechnen.
- Eingangs Parameter: Amplitude und X-Länge der Sinus-Welle in Millimeter
- Ausgangswert: gestreckte Länge in Millimeter (Typ double)
VBA Anwendung arc_sinus, um eine Sinus Funktion zu integrieren in MS Excel.
Es wird nach der Regel von "Simpson" numerisch in 1000 Schritten gerechnet.
VBA Listing
Um die Liste der Pygments Lexer (z.B. vbnet) zu sehen, muss der Kommentar der folgenden Zeile im Rohtext entfernt werden. Dazu muss das Makro HighlighterList.py in moinmoin installiert sein.
Rem Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Function arc_sinus(amp, length) As Double
' Integriere nach Simpson's Regel, R. Reuter 2004-09-22
Dim interval As Double
Dim i As Integer
Dim xs As Double, ys As Double
Dim X As Double, xmax As Double
Dim steps As Integer
Dim func As Double, sumfunc As Double
'
On Error GoTo err_arc
'-----------------------------------------------------------
' Procedure:
' evaluate the maximum value for x (minimum value=0)
' for each value of x from min to max, at each interval,
' calculate the function "sqrt(f'(sin(x),x)^2 + 1)"
' sum results according to Simpson's Rule
' calculate result and return
'-----------------------------------------------------------
steps = 1000 ' Anzahl der Integrationsschritte
xmax = length ' Maximalwert von x
interval = xmax / steps ' Intervall Breite
sumfunc = 0 ' Summenwert der Funktion
X = 0 ' Laufvariable in X-Richtung
xs = length / (2 * 3.1415926) ' X Skalierungsfaktor
ys = 1 / (2 / amp * xs) ' Y Skalierungsfaktor
For i = 0 To steps
func = Sqr(1 + (ys * Cos(X / xs)) ^ 2) ' Sqr = Wurzel
sumfunc = sumfunc + func
If i > 0 And i < steps Then
If (i / 2) = Int(i / 2) Then
sumfunc = sumfunc + func
Else: sumfunc = sumfunc + 3 * func
End If
End If
X = X + interval
If X > xmax Then X = xmax
Next i
arc_sinus = sumfunc * interval / 3
Exit Function
err_arc:
arc_sinus = 0
End Function
Liste der Seiten in dieser category:
-- RudolfReuter 2012-01-22 16:49:51
Go back to CategoryVBADoku or StartSeite ; KontaktEmail (ContactEmail)