100 REM SAVE SORTDEMO 110 REM ++++++++++++++++++++++++++++++ 120 REM + DEMONSTRATION AV SORTERING + 130 REM ++++++++++++++++++++++++++++++ 140 REM + Version 1.0 83-03-20 + 150 REM + Konstr. Arne Sp}ngtorp + 160 REM + <1218>^ 170 REM + 632 30 E-tuna + 180 REM + 016/42 45 04 + 190 REM ++++++++++++++++++++++++++++++ 200 REM 210 REM Initiering 220 REM 230 DIM V$(22%),V%(10%),A%(10%) 240 RANDOMIZE 250 DEFFNT%=(ABS(U%)>9%) 260 DATA 31882,32138,32394,32650,31922,32178,32434,32690,31962,32218 270 FOR A%=1% TO 10% : READ A%(A%) : NEXT A% 280 V$(0%)=' +---+' 290 V$(1%)='V(1) ! !' 300 V$(2%)=' +---+' 310 V$(3%)='V(2) ! !' 320 V$(4%)=' +---+' 330 V$(5%)='V(3) ! !' 340 V$(6%)=' +---+' 350 V$(7%)='V(4) ! !' 360 V$(8%)=' +---+' 370 V$(9%)='V(5) ! !' 380 V$(10%)=' +---+' 390 V$(11%)='V(6) ! !' 400 V$(12%)=' +---+' 410 V$(13%)='V(7) ! !' 420 V$(14%)=' +---+' 430 V$(15%)='V(8) ! !' 440 V$(16%)=' +---+' 450 V$(17%)='V(9) ! !' 460 V$(18%)=' +---+' 470 V$(19%)='V(10)! !' 480 V$(20%)=' +---+' 490 V$(21%)='H ! !' 500 V$(22%)=' +---+' 510 P1$(1%)='10 REM SORTERING AV TAL' 520 P1$(2%)='11 REM V(10) SORTVEKTOR' 530 P1$(3%)='12 REM H HJ[LPVARIABEL' 540 P1$(4%)='13 DIM V(10)' 550 P1$(5%)='14 H=0' 560 P1$(6%)='15 FOR I=1 TO 10' 570 P1$(7%)='16 V(I)=99-INT(RND*199)' 580 P1$(8%)='17 NEXT I' 590 P2$(1%)='20 FOR I=1 TO 9 <---+' 600 P2$(2%)='21 FOR J=I+1 TO 10 <-+ !' 610 P2$(3%)='22 IF V(I)>V(J) ! !' 620 P2$(4%)=' THEN H =V(I) ! !' 630 P2$(5%)=' V(I)=V(J) ! !' 640 P2$(6%)=' V(J)=H ! !' 650 P2$(7%)='23 NEXT J <-+ !' 660 P2$(8%)='24 NEXT I <---+' 670 REM 680 REM Prog-init 690 REM 700 ; CHR$(12%) 710 ; 'Detta {r' : ; 720 ; 'ett pro-' : ; 730 ; 'gram f|r' : ; 740 ; 'demonstra-' : ; 750 ; 'tion av en' : ; 760 ; 'SORTERING!' : ; 770 FOR X%=1% TO 8% 780 ; CUR(X%,16%)P1$(X%) 790 NEXT X% 800 FOR X%=1% TO 8% 810 ; CUR(X%+8%,16%)P2$(X%) 820 NEXT X% 830 ; CUR(20%,16%)'>> Tryck n}gon tangent' 840 ; CUR(21%,16%)' f|r forts{ttning!'; 850 GET G$ 860 FOR X%=1% TO 16% 870 ; CUR(X%,16%)STRING$(24%,32%) 880 NEXT X% 890 FOR X%=0% TO 22% 900 ; CUR(X%,15%)'!' : NEXT X% 910 FOR X%=1% TO 8% 920 ; CUR(X%*2%-1%,16%)P1$(X%) 930 NEXT X% 940 ; CUR(21%,36%); : GET G$ 950 REM 960 REM Rita vektor 970 REM 980 FOR X%=0% TO 22% 990 ; CUR(X%,0%)V$(X%) 1000 NEXT X% 1010 ; CUR(21%,36%); : GET G$ 1020 REM 1030 REM Slumptal 1040 REM 1050 FOR X%=1% TO 10% 1060 V%(X%)=99%-INT(RND*199%) 1070 U%=V%(X%) 1080 ; CUR(X%*2%-1%,7%+FNT%)U% 1090 NEXT X% 1100 ; CUR(21%,7%)0% 1110 ; CUR(21%,36%); : GET G$ 1120 REM 1130 REM Prog-sort 1140 REM 1150 FOR X%=1% TO 8% 1160 ; CUR(X%*2%-1%,16%)P2$(X%) 1170 NEXT X% 1180 ; CUR(21%,36%); : GET G$ 1190 REM 1200 REM Sortering 1210 REM 1220 FOR I%=1% TO 9% 1230 FOR A%=31891% TO 31902% 1240 POKE A%,PEEK(A%) OR 128% : NEXT A% 1250 GET G$ : FOR A%=31891% TO 31902% 1260 POKE A%,PEEK(A%) AND 127% : NEXT A% 1270 FOR A%=32699% TO 32704% 1280 POKE A%,PEEK(A%) AND 127% : NEXT A% 1290 IF I%=I0% 1320 1300 ; CUR(I0%*2%-1%,10%)' ' 1310 POKE A%(I%),PEEK(A%(I%)) AND 127% 1320 ; CUR(I%*2%-1%,10%)'I'; : I0%=I% 1330 POKE A%(I%),PEEK(A%(I%)) OR 128% 1340 FOR J%=I%+1% TO 10% 1350 FOR A%=32147% TO 32161% 1360 POKE A%,PEEK(A%) OR 128% : NEXT A% 1370 GET G$ : FOR A%=32147% TO 32161% 1380 POKE A%,PEEK(A%) AND 127% : NEXT A% 1390 FOR A%=32443% TO 32448% 1400 POKE A%,PEEK(A%) AND 127% : NEXT A% 1410 IF J%=J0% 1440 1420 ; CUR(J0%*2%-1%,10%)' ' 1430 POKE A%(J%),PEEK(A%(J%)) AND 127% 1440 ; CUR(J%*2%-1%,10%)'J'; : J0%=J% 1450 POKE A%(J%),PEEK(A%(J%)) OR 128% 1460 FOR A%=32403% TO 32414% 1470 POKE A%,PEEK(A%) OR 128% : NEXT A% 1480 GET G$ : FOR A%=32403% TO 32414% 1490 POKE A%,PEEK(A%) AND 127% : NEXT A% 1500 IF V%(I%)>V%(J%) 1510 ELSE 1860 1510 H%=V%(I%) 1520 FOR A%=32662% TO 32675% 1530 POKE A%,PEEK(A%) OR 128% : NEXT A% 1540 U%=H% : FOR R%=I%*2%-1% TO 21% 1550 ; CUR(R%,12%+FNT%)U%; 1560 GET G$ 1570 ; CUR(R%,11%)' '; : NEXT R% 1580 ; CUR(21%,6%)' '; 1590 ; CUR(21%,7%+FNT%)U%; 1600 GET G$ : FOR A%=32662% TO 32675% 1610 POKE A%,PEEK(A%) AND 127% : NEXT A% 1620 FOR A%=31939% TO 31947% 1630 POKE A%,PEEK(A%) OR 128% : NEXT A% 1640 V%(I%)=V%(J%) 1650 U%=V%(J%) 1660 FOR R%=J%*2%-1% TO I%*2%-1% STEP -1% 1670 ; CUR(R%,12%+FNT%)U%; 1680 GET G$ 1690 ; CUR(R%,11%)' '; : NEXT R% 1700 ; CUR(I%*2%-1%,6%)' '; 1710 ; CUR(I%*2%-1%,7%+FNT%)U%; 1720 GET G$ : FOR A%=31939% TO 31947% 1730 POKE A%,PEEK(A%) AND 127% : NEXT A% 1740 V%(J%)=H% 1750 FOR A%=32195% TO 32200% 1760 POKE A%,PEEK(A%) OR 128% : NEXT A% 1770 U%=H% 1780 FOR R%=21% TO J%*2%-1% STEP -1% 1790 ; CUR(R%,12%+FNT%)U%; 1800 GET G$ 1810 ; CUR(R%,11%)' '; : NEXT R% 1820 ; CUR(J%*2%-1%,6%)' '; 1830 ; CUR(J%*2%-1%,7%+FNT%)U%; 1840 GET G$ : FOR A%=32195% TO 32200% 1850 POKE A%,PEEK(A%) AND 127% : NEXT A% 1860 FOR A%=32443% TO 32448% 1870 POKE A%,PEEK(A%) OR 128% : NEXT A% 1880 FOR A%=32147% TO 32161% 1890 POKE A%,PEEK(A%) OR 128% : NEXT A% 1900 NEXT J% 1910 FOR A%=32699% TO 32704% 1920 POKE A%,PEEK(A%) OR 128% : NEXT A% 1930 NEXT I% 1940 FOR A%=32443% TO 32448% 1950 POKE A%,PEEK(A%) AND 127% : NEXT A% 1960 FOR A%=32699% TO 32704% 1970 POKE A%,PEEK(A%) AND 127% : NEXT A% 1980 FOR A%=32147% TO 32161% 1990 POKE A%,PEEK(A%) AND 127% : NEXT A% 2000 POKE A%(9%),PEEK(A%(9%)) AND 128% 2010 POKE A%(10%),PEEK(A%(10%)) AND 128% 2020 ; CUR(20%,16%)'>> Tryck J f|r ny sor-' 2030 ; CUR(21%,16%)' tering - annars N!'; 2040 GET G$ : IF G$='J' OR G$='j' 680 2050 END