Option Explicit

' Aufgabe 3.1

Sub Aufgabe3_1()
    Dim Eingabe As String

    Eingabe = InputBox("Bitte einen Text eingeben")
    MsgBox ("Die Eingabe war: " & Eingabe)
End Sub



' Aufgabe 3.2

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

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

    Durchschnittsverbrauch = verbrauch(Benzinmenge, Strecke)

    MsgBox ("Ihr Verbrauch war: " & Durchschnittsverbrauch & " l/100km.")
End Sub

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



'Aufgabe 3.3

Sub datum()
    Dim tage As Integer
    Dim ausgabe As Date
    tage = InputBox("Bitte geben Sie die Tage ein")
    ausgabe = DateAdd("d", tage, Now())
    MsgBox ("Das Datum lautet: " & ausgabe)
End Sub


'Aufgabe 3.4

Sub barwertBerechnung()
    Dim endKapital As Double
    Dim barwert As Double
    Dim laufzeit As Integer
    Const verzinsung As Double = 0.04

    endKapital = InputBox("Bitte Endkapital eingeben")
    laufzeit = InputBox("Bitte Laufzeit eingeben")

    barwert = berechneBarwert(endKapital, berechneNenner(verzinsung, laufzeit))
    barwert = Round(barwert, 2)
    MsgBox ("Sie müssen heute " & barwert & " Euro anlegen damit Sie sich in " & laufzeit & " Jahren  etwas im Wert von" & Chr(13) & endKapital & " Euro kaufen koennen")
End Sub

Function berechneNenner(ByVal verzinsung As DoubleByVal laufzeit As IntegerAs Double
        berechneNenner = (1 + verzinsung) ^ laufzeit
End Function

Function berechneBarwert(ByVal endKapital As DoubleByVal nenner As DoubleAs Double
        berechneBarwert = endKapital / nenner
End Function


' Aufgabe 3.5
Sub Hauptprogramm_Zinssatz()
    Dim Startkapital As Double
    Dim endKapital As Double
    Dim laufzeit As Integer

    Startkapital = InputBox("Bitte Startkapital eingeben")
    endKapital = InputBox("Bitte Endkapital eingeben")
    laufzeit = InputBox("Bitte Laufzeit eingeben")
    MsgBox ("Der erforderliche Zinssatz ist: " & berechneZinssatz(Startkapital, endKapital, laufzeit))
End Sub

Function berechneZinssatz(ByVal Anfangsbetrag As DoubleByVal Endbetrag As DoubleByVal Jahre As IntegerAs Double
    Dim aufzinsungsfaktor As Double
    aufzinsungsfaktor = (Endbetrag / Anfangsbetrag) ^ (1 / Jahre)
    berechneZinssatz = (aufzinsungsfaktor - 1) * 100
End Function