Advertisement
Coincidence1988

racket define-string1

Nov 17th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.45 KB | None | 0 0
  1. ;; Signatur: convert-monetary-unit : symbol ... -> ... [noch auszugestalten]
  2.  
  3. ;; Zweck: Umrechnung eines in Euro, Dollar oder Yen gegebenen
  4. ;; Geldbetrags in einen Geldbetrag, der als '->E (nach Euro),
  5. ;; '->D (nach Dollar) oder '->Y (nach Yen) gegeben ist.
  6.  
  7. ;; Beispieldaten [muessen noch konkret spezifiziert werden]:
  8. ;; eur0 sei ein Betrag von 0 Euro
  9. ;; eur10 sei ein Betrag von 10 Euro
  10. ;; usd10 sei ein Betrag von 10 Dollar
  11. ;; usd17.42 sei ein Betrag von 17 Dollar und 42 Cent
  12. ;; jpy10 sei ein Betrag von 10 Yen
  13. ;; jpy1742 sei ein Betrag von 1742 Yen
  14.  
  15. ;; **************************************************************************
  16. ;; ** Umrechnungsfaktor EUR nach JPY
  17. ;; **************************************************************************
  18. (define jpy-per-eur 132.245)
  19.  
  20. ;; **************************************************************************
  21. ;; ** Umrechnungsfaktor EUR nach USD
  22. ;; **************************************************************************
  23. (define usd-per-eur 1.167)
  24.  
  25. ;; **************************************************************************
  26. ;; ** Weitere Faktoren sollen nicht explizit definiert werden.
  27. ;; ** Aus finanzmathematischer Sicht ist dies nicht korrekt,
  28. ;; ** aus didaktischen Gruenden der Informatik hier(!) schon.
  29. ;; **************************************************************************
  30.  
  31. ;; Beispiele [unvollstaendig spezifiziert, muss noch ausgestaltet werden:
  32. ;; (convert-monetary-unit '->E eur0) sollte [0 Euro] ergeben.
  33. ;; (convert-monetary-unit '->E usd10) sollte [8,56 Euro] ergeben.
  34. ;; (convert-monetary-unit '->E jpy10) sollte [0,07 Euro] ergeben.
  35. ;;
  36. ;; (convert-monetary-unit '->D eur10) sollte [11,67 US$] ergeben.
  37. ;; (convert-monetary-unit '->D usd10) sollte [10 US$] ergeben.
  38. ;; (convert-monetary-unit '->D jpy1742) sollte [13,93 US$] ergeben.
  39. ;;
  40. ;; (convert-monetary-unit '->Y eur10) sollte [1322 Yen] ergeben.
  41. ;; (convert-monetary-unit '->Y usd17.42) sollte [1971 Yen] ergeben.
  42. ;; (convert-monetary-unit '->Y jpy1742) sollte [1742 Yen] ergeben.
  43. (define eur 'eur)
  44. (define usd 'usd)
  45. (define jpy 'jpy)
  46. (define-struct money (currency amount))
  47.  
  48. (define (convert-monetary-unit conversion amount)
  49. (cond
  50. [(symbol=? conversion '->E)
  51. (cond
  52. [(equal? (money-currency amount) 'eur) (* (money-amount amount) 1)]
  53. [(equal? (money-currency amount) 'usd) (/ (floor (* 100(/ (money-amount amount) usd-per-eur))) 100)]
  54.  
  55.  
  56.  
  57.  
  58. )]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement