Hallo, ich habe mir selbst eine Aufgabe aus dem Internet gesucht (für Java gedacht) und möchte diese in VBA umsetzen.
Ich bin nicht auf der Suche nach einer kompletten Lösung sondern Tipps/Hinweisen - soweit war meine Idee
Die Aufgabe:
1. Der zu zahlende Fahrpreis ist ein float-Wert (die kleinste Einheit ist 5 Cent,
kleinere Centbeträge kommen nicht vor).
2. Der zu zahlende Fahrpreis ist immer kleiner oder gleich 5 Euro und größer als
0 Euro.
3. Es können nicht mehr als 5 Euro als Geldbetrag eingeworfen werden. Der
eingeworfene Geldbetrag ist als float-Wert zu erfassen (zwei Nachkommastellen).
4. Der Automat verfügt über folgende Münzarten: 2 Euro, 1 Euro, 50 Cent, 20,
Cent, 10 Cent, 5 Cent.
5. Auszugeben ist die Anzahl der jeweiligen Münzart, die als Wechselgeld zurückgegeben
wird.
6. Der eingeworfene Geldbetrag ist größer oder gleich dem zu zahlenden Fahrpreis.
Beispiel:
Eingabe:
zu zahlender Fahrpreis: 2,10 Euro
eingeworfener Geldbetrag: 5,00 Euro
Ausgabe:
1 * 2 Euro, 1 * 50 Cent, 2 * 20 Cent
In dieser Methode soll das Wechselgeld berechnet
werden. Als Ergebnis wird ein Feld zurückgegeben, dass für jede Münzart
die Anzahl der Münzen im Wechselgeld angibt.
Meine Idee:
Public Function berechneWechselgeld() as Double
Dim preis As Double
Dim geldbetrag As Double
Dim ausgabe As Double
Dim wechselgeld As Double
Dim muenze(5) As Double
muenze(0) = 2
muenze(1) = 1
muenze(2) = 0.5
muenze(3) = 0.2
muenze(4) = 0.1
muenze(5) = 0.05
preis = Application.InputBox( _
prompt:="zu zahlender Betrag:", Type:=2)
geldbetrag = Application.InputBox( _
prompt:="eingeworfener Betrag:", Type:=2)
'preis = 0 <= 5
'geldbetrag = 0 <= 5
wechselgeld = preis - geldbetrag
MsgBox wechselgeld
End Function
Problem:
- Die Anweisung mit Preis zwischen 0 und 5 sowie Geldbetrag funktionieren nicht.
Außerdem würde ich gerne das Wechselgeld mit dem Array machen. Dazu fehlt auch noch eine Ausgabe die Anzahl der Münzen wiedergibt.
Ob die Datentypen richtig sind kann ich auch noch nicht sagen
|