Un classico della programmazione che viene richiesto negli istituti tecnici industriali è la realizzazione del cosiddetto Bubblesort ovvero ordinamento a bolle: confronto tra 2 numeri e il più piccolo “sale” di posizione. Si realizza con un paio di cicli e una variabile temporanea (di appoggio) che permette lo scambio dei valori di un array evitando così di perdere uno dei 2 valori.
In SuperBasic per ordinare in ordine crescente si procede
in questo modo:
240 FOR I = A-1 TO 1 STEP -1250 FOR J = 0 TO I – 1260 IF matrice$(J)>matrice$(J+1) THEN270 Temp$ = matrice$(J)280 matrice$(J) = matrice$(J+1)290 matrice$(J+1) = Temp$300 END IF310 NEXT J320 NEXT I
mentre l’ordinamento inverso (decrescente) è così fatto:
340 FOR I = A-1 TO 1 STEP -1350 FOR J = 0 TO I – 1360 IF matrice$(J)<matrice$(J+1) THEN370 Temp$ = matrice$(J)380 matrice$(J) = matrice$(J+1)390 matrice$(J+1) = Temp$400 END IF410 NEXT J420 NEXT I
L’implementazione sul QL quindi è simile a quanto avviene anche con gli altri dialetti di Basic a parte lo statement End if che per esempio sullo Zx è necessario ricorrere a dei GOSUB o impostare tutto sulla stessa linea e viene a mancare l’Else a cui bisogna ovviare con dei salti rendendo così meno chiaro il programma.