|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1792 (0x700)
Types: TextFile
Names: »BOBBLE.SCL«
└─⟦216f59cd8⟧ Bits:30002641 SCANLOG - Piccoline vers. nov. 87
└─⟦this⟧ »BOBBLE.SCL«
; ==============
; BOBLESORTERING
; ==============
;
; Kaldes ved sort(Input,Output)
;
; Input skal vaere en liste
;
;
; ----
; sort
; ----
;
sort(A,A) hvis
sorteret(A).
;
sort(A,S) hvis
ikke(sorteret(A)),
bobbel_op(A,A1),
fjern_sidste(A1,Element,A2),
find_een(sort(A2,A3)) og
påsæt_sidste(A3,Element,S).
;
;
; --------
; sorteret
; --------
;
sorteret(A) hvis
for_alle naboer(A,X1,X2) gælder X1 <= X2.
;
;
; ---------
; bobbel_op
; ---------
;
vælg_een bobbel_op
;
; Hvis der kun er et element i listen, så skal der ikke
; bobles mere op
;
bobbel_op(<X>,<X>).
;
bobbel_op(<X1,X2..Resten>,<X1..Op_boblet>) hvor
X1 <= X2 hvis
bobbel_op(<X2..Resten>,Op_boblet).
;
bobbel_op(<X1,X2..Resten>,<X2..Op_boblet>) hvor
X1 > X2 hvis
bobbel_op(<X1..Resten>,Op_boblet).
;
slut.
;
;
; ------
; naboer
; ------
;
naboer(<X1,X2..Resten>,X1,X2).
;
naboer(<X3..Resten>,X1,X2) hvis
naboer(Resten,X1,X2).
;
;
; ------------
; påsæt_sidste
; ------------
vælg_een påsæt_sidste
;
påsæt_sidste(<X>,Element,<X,Element>).
;
påsæt_sidste(<X1..Resten>,Element,<X1..Resultat>) hvis
påsæt_sidste(Resten,Element,Resultat).
;
slut.
;
; ------------
; fjern_sidste
; ------------
; Den omvendte operation til påsæt_sidste, men da påsæt_sidste
; også virker 'baglæns', så bruges denne
;
fjern_sidste(A_plus_Element,Element,A) hvis
påsæt_sidste(A,Element,A_plus_Element).
;
;
; BOBLESORTERING SLUT
; ====================
«eof»