ORIGIN '~beta/basiclib/betaenv'; ---program: descriptor--- (# (* Ez a program a tömbök használatát, egyszerű mintadeklarációkat, * a blokkstruktúrát és a rekurziót illusztrálja *) numberRepetition: (# r: [1] @Integer #); qsort: (# nr: ^numberRepetition; left, right, last: @Integer; swap: (# i,j: @Integer; temp: @Integer; enter (i,j) do nr.r[i]->temp; nr.r[j]->nr.r[i]; temp->nr.r[j]; #); enter (nr[], left, right) do L: (if left >= right then (* megáll, ha a tömb kettőnél*) leave L; (* kevesebb elemet tartalmaz *) else (left, (left+right)/2) -> swap; left->last; (for i: right-left repeat (if nr.r[i+left] < nr.r[left] then last+1->last; (last,i+left) -> swap; if); for); (left,last) -> swap; (nr[],left,last) -> qsort; (nr[],last+1,right) -> qsort; if); #); numbers: @numberRepetition; t: ^Text; i: @Integer; do (* inicializálja a tömböt felhasználó által beírt értékekkel*) 'Type some numbers: '->puttext; getline->t[]; (* beolvas a billentyűzetről az újsorig *) 1->i; t.reset; L: (if not t.eos then (* az input átmásolása * ellenőrzi, hogy a felhasználó csak számokat írt-e be *) (if i>numbers.r.range then (* a tömb méretének kiterjesztése *) numbers.r.range->numbers.r.extend; if); t.getint->numbers.r[i]; i+1->i; restart L; if); (* tömb rendezése *) (numbers[],1,i-1) -> qsort; 'Rendezett elemek: '->puttext; (for j: i-1 repeat numbers.r[j]->putint; ' '->put; for); newline; #)