|
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 - 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»