Option Explicit
Sub taschenrechnerMitFunktion()
' Taschenrechnerprogramm mit Funktionen
' Dateiname: taschenrechnerMitFunktion
Dim ersterOperand As Double
Dim zweiterOperand As Double
Dim operator As String
Dim eingabe As String
Dim ergebnis As Double
' Gib Programmbeschreibung aus
MsgBox ("Geben Sie zwei Operanden und einen Operator ein!" _
& Chr$(13) & "Das Programm verhält sich wie ein" _
& " Taschenrechner. Als Operatoren sind +, - / und *" _
& " zugelassen! Das Programm endet durch die Eingabe von " _
& Chr$(13) & "0 als erstem Summanden!")
' Lies ersten Summanden ein
eingabe = InputBox("Geben Sie nun den ersten Operanden ein!")
Do While eingabe <> "0"
If Not Lies_und_ueberpruefe_Benutzereingaben(eingabe, _
ersterOperand, operator, _
zweiterOperand) Then Exit Sub
If Not Fuehre_Berechnung_durch(ersterOperand, _
operator, _
zweiterOperand, _
ergebnis) Then Exit Sub
' Gib das Ergebnis aus
MsgBox (" " & ersterOperand & " " & operator & " " _
& zweiterOperand & " = " & ergebnis)
' Lies ersten Operanden ein
eingabe = InputBox("Geben Sie nun den ersten Operanden ein!")
Loop
End Sub
Function Lies_und_ueberpruefe_Benutzereingaben(ByVal eingabe As String, _
ersterOperand As Double, _
operator As String, _
zweiterOperand As Double) _
As Boolean
Lies_und_ueberpruefe_Benutzereingaben = True
If Not wandle_in_Double_um(eingabe, ersterOperand) Then
Lies_und_ueberpruefe_Benutzereingaben = False
Exit Function
End If
operator = InputBox("Geben Sie nun den Operator ein!")
eingabe = InputBox("Geben Sie nun den zweiten Operanden ein!")
If Not wandle_in_Double_um(eingabe, zweiterOperand) Then
Lies_und_ueberpruefe_Benutzereingaben = False
Exit Function
End If
End Function
Function Fuehre_Berechnung_durch(ByVal ersterOperand As Double, _
ByVal operator As String, _
ByVal zweiterOperand As Double, _
ergebnis As Double) _
As Boolean
Fuehre_Berechnung_durch = True
Select Case operator
Case "+"
ergebnis = ersterOperand + zweiterOperand
Case "-"
ergebnis = ersterOperand - zweiterOperand
Case "*"
ergebnis = ersterOperand * zweiterOperand
Case "/"
If (zweiterOperand = 0) Then
MsgBox ("Der Nenner ist 0!")
Fuehre_Berechnung_durch = False
Exit Function
End If
ergebnis = ersterOperand / zweiterOperand
Case Else
MsgBox ("Der eingegebene Operator wird nicht " _
& "unterstützt!")
Fuehre_Berechnung_durch = False
Exit Function
End Select
End Function