#COMPILE EXE #DIM ALL %False = 0 %True = 1 FUNCTION PBMAIN() AS LONG LOCAL i AS LONG LOCAL j AS LONG DIM alldif(11) AS INTEGER alldif(0) = 1 alldif(1) = 2 alldif(2) = 3 alldif(3) = 4 alldif(4) = 5 alldif(5) = 6 alldif(6) = -5 alldif(7) = -4 alldif(8) = -3 alldif(9) = -2 alldif(10) = -1 alldif(11) = 0 DIM reeks(11) AS INTEGER 'de te berekenen dodekafonische reeks DIM noten(11) AS INTEGER 'flags of 'kruisjes' voor het tellen en aanstrepen start: CLS RANDOMIZE TIMER DO FOR i = 0 TO 11 reeks(i) = RND(1) * 11 noten(i) = %False NEXT i FOR i = 0 TO 11 FOR j = 0 TO 11 IF i = reeks(j) THEN noten(i) = %True NEXT j NEXT i j = 0 FOR i = 0 TO 11 IF noten(i) THEN INCR j NEXT i LOOP UNTIL j = 12 ' test op het resultaat: PRINT "reeks:" FOR i = 0 TO 11 PRINT reeks(i); NEXT i ' nu kunnen we gaan 'remappen' op intervallen: DIM inter(11) AS INTEGER FOR i = 0 TO 11 inter(i) = alldif(reeks(i)) NEXT i ' test dit: PRINT PRINT "intervallen:" FOR i = 0 TO 11 PRINT inter(i); NEXT i PRINT PRINT "druk op een toets om opnieuw te beginnen" WAITKEY$ GOTO start END FUNCTION