Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; Signatur: convert-monetary-unit : symbol ... -> ... [noch auszugestalten]
- ;; Zweck: Umrechnung eines in Euro, Dollar oder Yen gegebenen
- ;; Geldbetrags in einen Geldbetrag, der als '->E (nach Euro),
- ;; '->D (nach Dollar) oder '->Y (nach Yen) gegeben ist.
- ;; Beispieldaten [muessen noch konkret spezifiziert werden]:
- ;; eur0 sei ein Betrag von 0 Euro
- ;; eur10 sei ein Betrag von 10 Euro
- ;; usd10 sei ein Betrag von 10 Dollar
- ;; usd17.42 sei ein Betrag von 17 Dollar und 42 Cent
- ;; jpy10 sei ein Betrag von 10 Yen
- ;; jpy1742 sei ein Betrag von 1742 Yen
- ;; **************************************************************************
- ;; ** Umrechnungsfaktor EUR nach JPY
- ;; **************************************************************************
- (define jpy-per-eur 132.245)
- ;; **************************************************************************
- ;; ** Umrechnungsfaktor EUR nach USD
- ;; **************************************************************************
- (define usd-per-eur 1.167)
- ;; **************************************************************************
- ;; ** Weitere Faktoren sollen nicht explizit definiert werden.
- ;; ** Aus finanzmathematischer Sicht ist dies nicht korrekt,
- ;; ** aus didaktischen Gruenden der Informatik hier(!) schon.
- ;; **************************************************************************
- ;; Beispiele [unvollstaendig spezifiziert, muss noch ausgestaltet werden:
- ;; (convert-monetary-unit '->E eur0) sollte [0 Euro] ergeben.
- ;; (convert-monetary-unit '->E usd10) sollte [8,56 Euro] ergeben.
- ;; (convert-monetary-unit '->E jpy10) sollte [0,07 Euro] ergeben.
- ;;
- ;; (convert-monetary-unit '->D eur10) sollte [11,67 US$] ergeben.
- ;; (convert-monetary-unit '->D usd10) sollte [10 US$] ergeben.
- ;; (convert-monetary-unit '->D jpy1742) sollte [13,93 US$] ergeben.
- ;;
- ;; (convert-monetary-unit '->Y eur10) sollte [1322 Yen] ergeben.
- ;; (convert-monetary-unit '->Y usd17.42) sollte [1971 Yen] ergeben.
- ;; (convert-monetary-unit '->Y jpy1742) sollte [1742 Yen] ergeben.
- (define eur 'eur)
- (define usd 'usd)
- (define jpy 'jpy)
- (define-struct money (currency amount))
- (define (convert-monetary-unit conversion amount)
- (cond
- [(symbol=? conversion '->E)
- (cond
- [(equal? (money-currency amount) 'eur) (* (money-amount amount) 1)]
- [(equal? (money-currency amount) 'usd) (/ (floor (* 100(/ (money-amount amount) usd-per-eur))) 100)]
- )]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement