6.4 Rechnen mit der Klasse Math 

PI, E
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, die in Tabelle 6.2 gezeigt werden.
Element | Erläuterung |
Acos() |
Winkel im Bogenmaß, dessen Cosinus angegeben wird |
Asin() |
Winkel im Bogenmaß, dessen Sinus angegeben wird |
Atan() |
Winkel im Bogenmaß, dessen Tangens angegeben wird |
Ceiling() |
nächsthöhere ganze Zahl (aus 2,7 wird 3, aus –2,7 wird –2) |
Cos() |
Cosinus eines Winkels, der im Bogenmaß angegeben wird |
E |
math. Konstante E (Eulersche Zahl) |
Exp() |
math. Konstante E hoch angegebene Zahl |
Floor() |
nächstniedrigere ganze Zahl (aus 2,7 wird 2, aus –2,7 wird –3) |
Log() |
natürlicher Logarithmus einer Zahl, zur Basis E (math. Konstante) |
Log10() |
Logarithmus einer Zahl zur Basis 10 |
PI |
Kreiszahl PI |
Pow() |
Zahl x hoch Zahl y |
Round() |
nächste ganze Zahl (gerundet, aus 2,7 wird 3, aus –2,7 wird –3) |
Sin() |
Sinus eines Winkels, der im Bogenmaß angegeben wird |
Sqrt() |
Wurzel einer Zahl |
Tan() |
Tangens eines Winkels, der im Bogenmaß angegeben wird |
Truncate() |
Abschneiden der Nachkommastellen (aus 2,7 wird 2, aus –2,7 wird –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.28.
Abbildung 6.28 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.28 Projekt »Mathematik«
Zur Erläuterung:
Inhalt des Textfelds umwandeln
- 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.
Ziffern
- 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.
Komma
- Ein Komma wird nur eingefügt, falls noch kein Komma vorhanden ist. Dies wird mit der Zeichenkettenmethode IndexOf() geprüft.
Löschen
- Über den Button BS (BackSpace) wird das letzte Zeichen im Textfeld gelöscht, über den Button C (Clear) der gesamte Inhalt des Textfelds.
Sin(), Cos(), Tan()
- 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ß.
Asin(), Acos(), Atan()
- 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.
Log(), Exp(), Log10()
- 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 (eZahl , mithilfe von Exp()), 10 hoch Zahl (10Zahl ) und Zahl zum Quadrat (Zahl2 ) gerechnet.
Ganze Zahlen
- 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.