vas#!r6rs
(import (rnrs base (6)) (rnrs io simple))
;vastleggen waarde van munten
(define a 2)
(define b 1)
(define c 0.50)
(define d 0.20)
(define e 0.10)
(define f 0.05)
(define g 0.02)
(define h 0.01)
(define z 0)
(define (bedrag x y) (begin
(display x) ; geef aantal munten weer (numeriek)
(if (> x 1) ; als aantal munten groter is als 1
(display " munten van ") ; dan
(display " munt van ")) ;anders
(display y) ; geef waarde munten weer (numeriek)
(if (integer? y) ;als waarde munt integer is
(display " euro") ;dan
(display " eurocent")))) ;anders
(define (wisselgeld p g)
(if (< 1 (/ (- g p) a)) ;als het verschil tussen gegeven en prijs(te betalen) > dan 1
(if (integer? (/ (- g p) a)) ;als te betalen gedeeld door eerste munt integer is
(bedrag (/ (- g p) a) a) ;dan display eerst munt aantal en stop
((bedrag (quotient (- g p) a)) ;anders, display quotient (integer waarde deling)
(set! z (remainder (- g p) a)))) ; set remainder naar z [PROBLEEM]
(if (< 1 (/ z b)) ;als het verschil tussen gegeven en prijs(te betalen) > dan 1
(if (integer? (/ z b)) ;als te betalen gedeeld door tweede munt integer is
(bedrag (/ z b) b) ;dan display eerst munt aantal en stop
((bedrag (quotient z b) ;anders, display quotient (integer waarde deling)
(set! z (remainder (z b)))) ; set remainder naar z [PROBLEEM]
)))))