\ Oplossing - Albert Nijhof - nov2025
\ GEMIDDELDE en MEDIAAN van 5 getallen op stack
\ Zonder buffers of variabelen

\ ----- gemiddelde -----------------------------------
: MID5 ( a b c d e -- gemiddelde ) + + + + 5 / ;
\ ----- mediaan --------------------------------------
: KG ( x y -- kleinste grootste )  2dup < ?exit swap ;
: MED3 ( a b c -- mediaan )        kg rot min max ;
: MED5 ( a b c d e -- mediaan )    kg >r kg >r kg >r max
                                   r> kg r> kg r> min med3 ;
\ Gebruik U< UMIN UMAX bij unsigned getallen.


(*      Dezelfde code voor de mediaan met meer uitleg:

: KG ( x y -- kleinste grootste )
    2dup < ?exit    \ de volgorde klopt al
    swap ;
: MED3 ( a b c -- mediaan )
    kg          \ de middelste is nu zeker niet de grootste
    rot         \ de grootste zit nu bij de bovenste twee
    min         \ verwijder die grootste
    max ;       \ verwijder ook de kleinste
\                                                                stackdiepte
: MED5 ( a b c d e -- mediaan )                                  data|return
    kg >r kg >r kg >r   \ de kleinste is niet naar r-stack gegaan   2|3
    max                 \ verwijder die kleinste, nog 4 over        1|3
    r> kg r> kg r>      \ de grootste zit nu bij de bovenste twee   4|0
    min                 \ verwijder die grootste, nog 3 over        3|0
    med3 ;
*)
