|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC700 "Piccolo" |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC700 "Piccolo" Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2048 (0x800) Types: TextFile Names: »QUICKSOR.PAS«
└─⟦09235ab48⟧ Bits:30003065 Demoprogrammer K-Z til Pascal bog └─ ⟦this⟧ »QUICKSOR.PAS«
PROGRAM quicksor; CONST antal = 1000; TYPE tabeltype = ARRAY(.1 .. antal.) OF INTEGER; VAR n, max, i : INTEGER; tabel : tabeltype; PROCEDURE sorter(venstre, hoejre: INTEGER; VAR vektor : tabeltype); VAR v, h, midt, byt : INTEGER; BEGIN (* sorter *) v := venstre; h := hoejre; midt := vektor(.(v + h) DIV 2.); REPEAT WHILE vektor(.v.) < midt DO v := v + 1; WHILE midt < vektor(.h.) DO h := h - 1; IF v <= h THEN BEGIN byt := vektor(.v.); vektor(.v.) := vektor(.h.); vektor(.h.) := byt; v := v + 1; h := h - 1; END; UNTIL v > h; IF venstre < h THEN sorter(venstre, h, vektor); IF v < hoejre THEN sorter(v, hoejre, vektor); END; (* sorter *) BEGIN (* quicksor *) WRITE(CHR(12)); WRITELN('Programmet finder n tilfældige hele tal fra 1', ' til max og sorterer dem.'); WRITELN; WRITE('Tast antallet n (max 1000): '); READLN(n); WRITE('Tast den øvre grænse max: '); READLN(max); WRITELN; WRITELN('Følgende tal vil blive sorteret:'); FOR i := 1 TO n DO BEGIN tabel(.i.) := RANDOM(max) + 1; WRITE(tabel(.i.):5); END; WRITELN; WRITELN; sorter(1, n, tabel); WRITELN('Her er tallene sorteret:'); WRITELN; FOR i := 1 TO n DO WRITE(tabel(.i.):5); WRITELN; END. (* quicksor *) «eof»