1. vas#!r6rs
  2. (import (rnrs base (6)) (rnrs io simple))
  3. ;vastleggen waarde van munten
  4. (define a 2)
  5. (define b 1)
  6. (define c 0.50)
  7. (define d 0.20)
  8. (define e 0.10)
  9. (define f 0.05)
  10. (define g 0.02)
  11. (define h 0.01)
  12. (define z 0)
  13. (define (bedrag x y) (begin
  14. (display x) ; geef aantal munten weer (numeriek)
  15. (if (> x 1) ; als aantal munten groter is als 1
  16. (display " munten van ") ; dan
  17. (display " munt van ")) ;anders
  18. (display y) ; geef waarde munten weer (numeriek)
  19. (if (integer? y) ;als waarde munt integer is
  20. (display " euro") ;dan
  21. (display " eurocent")))) ;anders
  22.  
  23.  
  24. (define (wisselgeld p g)
  25. (if (< 1 (/ (- g p) a)) ;als het verschil tussen gegeven en prijs(te betalen) > dan 1
  26. (if (integer? (/ (- g p) a)) ;als te betalen gedeeld door eerste munt integer is
  27. (bedrag (/ (- g p) a) a) ;dan display eerst munt aantal en stop
  28. ((bedrag (quotient (- g p) a)) ;anders, display quotient (integer waarde deling)
  29. (set! z (remainder (- g p) a)))) ; set remainder naar z [PROBLEEM]
  30. (if (< 1 (/ z b)) ;als het verschil tussen gegeven en prijs(te betalen) > dan 1
  31. (if (integer? (/ z b)) ;als te betalen gedeeld door tweede munt integer is
  32. (bedrag (/ z b) b) ;dan display eerst munt aantal en stop
  33. ((bedrag (quotient z b) ;anders, display quotient (integer waarde deling)
  34. (set! z (remainder (z b)))) ; set remainder naar z [PROBLEEM]
  35. )))))