Option Explicit

' Aufgabe 4.1

Sub Aufgabe4_1()
    Dim Zahl1 As Integer, Zahl2 As Integer
    Dim Text As String

    Zahl1 = InputBox("Bitte eine Zahl eingeben")
    Zahl2 = InputBox("Bitte eine Zahl eingeben")
    Text = InputBox("Bitte einen Text eingeben")

    If Zahl1 + Zahl2 > 10 Then
        MsgBox ("Summe der Zahlen ist größer 10")
    End If

    If Zahl1 <= 10 Or Zahl2 <= 10 Then
        MsgBox ("Eine der Zahlen ist höchstens 10")
    End If

    If Zahl1 > 10 And Zahl1 < 20 Then
        MsgBox ("Die erste Zahl liegt zwischen 10 und 20")
    End If

    If Text = "ja" Or Text = "nein" Then
        MsgBox ("ja oder nein wurde eingegeben")
    End If

    If Text <> "ja" And Text <> "nein" Then
        MsgBox ("Weder ja noch nein wurde eingegeben")
    End If

    ' Alternative Prüfung zur letzten Aufgabe
    If Not (Text = "ja" Or Text = "nein") Then
        MsgBox ("Alternative Prüfung: weder ja noch nein wurde eingegeben")
    End If

End Sub


' Aufgabe 4.2

Sub Hauptprogramm_Verbrauch()
    Dim Benzinmenge As Double
    Dim Strecke As Double
    Dim Verbrauch As Double

    Benzinmenge = InputBox("Bitte Benzinmenge eingeben")
    Strecke = InputBox("Bitte Strecke eingeben")

    pruefeStrecke Strecke

    Verbrauch = berechneVerbrauch(Benzinmenge, Strecke)

    MsgBox ("Ihr Verbrauch war: " & Verbrauch & " l/100km.")
    bewerteVerbrauch Verbrauch

    'Alternativ zu den letzten beiden Zeilen
    MsgBox ("Ihr Verbrauch war: " & Verbrauch & " l/100km." & Chr(13) & bewerteVerbrauch2(Verbrauch))
End Sub


Function berechneVerbrauch(ByVal benzin As DoubleByVal Strecke) As Double
    berechneVerbrauch = benzin * 100 / Strecke
End Function

Sub pruefeStrecke(ByVal Strecke As Double)
    Const minStrecke As Double = 100

    If Strecke < minStrecke Then
        MsgBox ("Achtung: Das Ergebnis ist bei kurzen Strecken ungenau.")
    End If
End Sub

Sub bewerteVerbrauch(ByVal Verbrauch As Double)
    Const kleinerVerbrauch As Double = 4
    Const akzeptablerVerbrauch As Double = 8
    Const hoherVerbrauch As Double = 12

    If Verbrauch <= kleinerVerbrauch Then
        MsgBox ("Verbrauch ist vorbildlich")
    ElseIf Verbrauch <= akzeptablerVerbrauch Then
        MsgBox ("Verbrauch ist akzeptabel")
    ElseIf Verbrauch <= hoherVerbrauch Then
        MsgBox ("Verbrauch ist schlecht")
    Else
        MsgBox ("Verbrauch ist ein Umweltdesaster")
    End If
End Sub

'Funktion für alternative Lösung
Function bewerteVerbrauch2(ByVal Verbrauch As DoubleAs String
    Const kleinerVerbrauch As Double = 4
    Const akzeptablerVerbrauch As Double = 8
    Const hoherVerbrauch As Double = 12

    If Verbrauch <= kleinerVerbrauch Then
        bewerteVerbrauch2 = "Verbrauch ist vorbildlich"
    ElseIf Verbrauch <= akzeptablerVerbrauch Then
        bewerteVerbrauch2 = "Verbrauch ist akzeptabel"
    ElseIf Verbrauch <= hoherVerbrauch Then
        bewerteVerbrauch2 = "Verbrauch ist schlecht"
    Else
        bewerteVerbrauch2 = "Verbrauch ist ein Umweltdesaster"
    End If
End Function