6.4 Rechnen mit der Klasse Math
Die Klasse Math stellt eine Reihe mathematischer Funktionen über statische Methoden bereit, sowie über statische Eigenschaften die beiden mathematischen Konstanten PI und E.
In dem folgenden Projekt Mathematik für einen Mini-Taschenrechner kommen die Elemente aus der Klasse Math vor (siehe Tabelle 6.2).
Ein Beispiel zur Bedienung des Programms: Nach der Eingabe von 45 und dem Betätigen des Buttons sin wird der Sinus von 45 Grad berechnet, siehe Abbildung 6.30.
Abbildung 6.30 Mini-Taschenrechner
Das Programm:
Public Class Form1
Dim x As Double
Private Sub txtE_TextChanged(...
) Handles T.TextChanged
Try
x = Convert.ToDouble(T.Text)
Catch ex As Exception
T.Text = ""
x = 0
End Try
End Sub
Private Sub cmdBackSpace_Click(...) Handles ...
T.Text =
T.Text.Substring(0, T.Text.Length – 1)
End Sub
Private Sub cmdClear_Click(...) Handles ...
T.Text = ""
End Sub
Private Sub cmdSinus_Click(...) Handles ...
If chkInv.Checked Then
T.Text = Math.Asin(x) * 180 / Math.PI
chkInv.Checked = False
Else
T.Text = Math.Sin(x / 180.0 * Math.PI)
End If
End Sub
Private Sub cmdCosinus_Click(...) Handles ...
If chkInv.Checked Then
T.Text = Math.Acos(x) * 180 / Math.PI
chkInv.Checked = False
Else
T.Text = Math.Cos(x / 180.0 * Math.PI)
End If
End Sub
Private Sub cmdTangens_Click(...) Handles ...
If chkInv.Checked Then
T.Text =
Math.Atan(x) * 180 / Math.PI
chkInv.Checked = False
Else
T.Text =
Math.Tan(x / 180.0 * Math.PI)
End If
End Sub
Private Sub cmdLn_Click(...) Handles ...
If chkInv.Checked Then
T.Text = Math.Exp(x)
chkInv.Checked = False
Else
T.Text = Math.Log(x)
End If
End Sub
Private Sub cmdLog_Click(...) Handles ...
) Handles cmdLog.Click
If chkInv.Checked Then
T.Text = Math.Pow(10.0, x)
chkInv.Checked = False
Else
T.Text = Math.Log10(x)
End If
End Sub
Private Sub cmdPI_Click(...) Handles ...
T.Text = Math.PI
End Sub
Private Sub cmdE_Click(...) Handles ...
T.Text = Math.E
End Sub
Private Sub cmdCeiling_Click(...) Handles ...
T.Text = Math.Ceiling(x)
End Sub
Private Sub cmdFloor_Click(...) Handles ...
T.Text = Math.Floor(x)
End Sub
Private Sub cmdRound_Click(...) Handles ...
T.Text = Math.Round(x)
End Sub
Private Sub cmdTruncate_Click(...) Handles ...
T.Text = Math.Truncate(x)
End Sub
Private Sub cmdWurzel_Click(...) Handles ...
If chkInv.Checked Then
T.Text = Math.Pow(x, 2.0)
chkInv.Checked = False
Else
T.Text = Math.Sqrt(x)
End If
End Sub
Private Sub cmdPlusMinus_Click(...) Handles ...
T.Text = x * –1.0
End Sub
Private Sub cmdKehrwert_Click(...) Handles ...
T.Text = 1.0 / x
End Sub
Private Sub c0_Click(...
) Handles c0.Click, c1.Click, c2.Click,
c3.Click, c4.Click, c5.Click, c6.Click,
c7.Click, c8.Click, c9.Click
T.Text &= sender.Text
End Sub
Private Sub cmdKomma_Click(...) Handles ...
) Handles cmdKomma.Click
If T.Text.IndexOf(",") < 0 Then
T.Text &= ","
End If
End Sub
End Class
Listing 6.30 Projekt »Mathematik«
Zur Erläuterung:
- Jede Änderung im Textfeld führt dazu, dass eine Umwandlung des Textfeldinhalts in eine Double-Zahl und die Zuweisung dieser Zahl zur klassenweit gültigen Double-Variablen x stattfindet. Diese Variable repräsentiert also immer den aktuellen Zahlenwert im Textfeld. Falls die Umwandlung aufgrund einer möglicherweise ungültigen mathematischen Operation nicht gelingt, dann wird das Textfeld geleert und x auf 0 gesetzt.
- Ein Benutzer kann die Ziffern durch Eingabe im Textfeld oder durch Betätigen der Buttons 0 bis 9 eingeben. Alle Button-Clicks führen zur selben Ereignisprozedur. Der auslösende Button kann über den Parameter sender erkannt werden. Seine Eigenschaft Text liefert den zugehörigen Wert.
- Ein Komma wird nur eingefügt, falls noch kein Komma vorhanden ist. Dies wird mit der Zeichenkettenmethode IndexOf() geprüft.
- Über den Button BS (BackSpace) wird das letzte Zeichen im Textfeld gelöscht, über den Button C (Clear) der gesamte Inhalt des Textfelds.
- Die Methoden Sin(), Cos() und Tan() berechnen ihr Ergebnis aus einem Winkel, der im Bogenmaß angegeben werden muss. Die Eingabe kann hier aber wie gewohnt in Grad erfolgen. Innerhalb der Ereignisprozeduren wird der Wert durch 180 geteilt und mit PI multipliziert, dadurch ergibt sich der Wert im Bogenmaß.
- Die Methoden Asin(), Acos() und Atan() werden ausgeführt, wenn man vor Betätigung des entsprechenden Buttons das Kontrollkästchen Inv einschaltet, ähnlich wie im Windows-Taschenrechner. Das Ergebnis ist ein Winkel, der im Bogenmaß angegeben wird. Für die Ausgabe in Grad wird das Ergebnis in der Ereignisprozedur mit 180 multipliziert und durch PI geteilt.
- Auch die Funktionen Log() zur Berechnung des natürlichen Logarithmus, Log10() zur Berechnung des 10er-Logarithmus und Sqrt() zur Berechnung der Wurzel können mithilfe des Kontrollkästchens invertiert werden. Es wird dann E hoch Zahl (mithilfe von Exp()), 10 hoch Zahl und Zahl zum Quadrat gerechnet.
- Die Funktionen Ceiling(), Floor(), Round() und Truncate() erzeugen auf jeweils unterschiedliche Art ganze Zahlen aus Zahlen mit Nachkommastellen (siehe hierzu auch Tabelle 6.2).
- Die Buttons (+/–) (Vorzeichenwechsel) und (1/x) (Kehrwert) runden den Mini-Taschenrechner ab.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.