home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / STRAIGHT / STRAIGHT2.MSA / BASIC_P_Q_QSORT.LST < prev    next >
Encoding:
File List  |  1996-09-17  |  2.5 KB  |  124 lines

  1. TEXT 200,50," QSORT Beispiel           " ! 2/92
  2. '
  3. DIM feld%(20)
  4. PRINT "unsortiert:"
  5. FOR i%=0 TO 20
  6.   feld%(i%)=RAND(100)
  7.   PRINT feld%(i%)
  8. NEXT i%
  9. QSORT feld%()
  10. PRINT AT(15,1);"steigend sortiert:"
  11. FOR i%=0 TO 20
  12.   PRINT AT(15,i%+2);feld%(i%)
  13. NEXT i%
  14. mt_frage
  15. '
  16. CLEAR
  17. CLS
  18. TEXT 200,150," QSORT  Beispiel 2        " ! 2/92
  19. '
  20. DIM feld%(20)
  21. PRINT "unsortiert:"
  22. FOR i%=0 TO 20
  23.   feld%(i%)=RAND(100)
  24.   PRINT feld%(i%)
  25. NEXT i%
  26. QSORT feld%(-),5
  27. PRINT AT(15,1);"fallend sortiert:"
  28. FOR i%=0 TO 20
  29.   PRINT AT(15,i%+2);feld%(i%)
  30.   IF i%<5
  31.     PRINT AT(20,i%+2);"<-- sortiert"
  32.   ELSE
  33.     PRINT AT(4,i%+2);"--------->"
  34.   ENDIF
  35. NEXT i%
  36. mt_frage
  37. '
  38. CLEAR
  39. CLS
  40. TEXT 200,395," QSORT  Beispiel 3          "   !  2/92
  41. DIM feld%(20),feld2%(20)
  42. PRINT "unsortiert:     Indexfeld:"
  43. PRINT SPC(27);"|"
  44. FOR i%=0 TO 20
  45.   feld%(i%)=RAND(100)
  46.   feld2%(i%)=i%
  47.   PRINT feld%(i%),feld2%(i%)
  48. NEXT i%
  49. QSORT feld%(+),15,feld2%()
  50. a$="| steigend sortiert:    Indexfeld (mitsortiert):"
  51. PRINT AT(28,1);a$
  52. FOR i%=0 TO 20
  53.   PRINT AT(28,i%+3);"| ";feld%(i%)
  54.   PRINT AT(52,i%+3);feld2%(i%)
  55.   IF i%<15
  56.     PRINT AT(34,i%+3);" -- sortiert --"
  57.   ELSE
  58.     PRINT AT(34,i%+3);" - unsortiert -"
  59.   ENDIF
  60. NEXT i%
  61. mt_frage
  62. CLS
  63. TEXT 200,390," QSORT Beispiel 4         " !2/92
  64. '
  65. CLEAR
  66. sysfont(1)
  67. DIM feld$(40),feld2%(40),vorgabe|(256)
  68. PRINT "unsortiert:     Indexfeld:"
  69. PRINT SPC(27);"|"
  70. x$="äÄöÖüÜß"
  71. x2$="AAOOUUS"
  72. FOR i%=0 TO 255
  73.   vorgabe|(i%)=i%
  74.   IF INSTR("abcdefghijklmnopqrstuvwxyz",CHR$(i%))
  75.     vorgabe|(i%)=ASC(CHR$(i%-32))
  76.   ENDIF
  77.   IF INSTR(x$,CHR$(i%))
  78.     vorgabe|(i%)=ASC(MID$(x2$,INSTR(x$,CHR$(i%)),1))
  79.   ENDIF
  80. NEXT i%
  81. FOR i%=0 TO 40
  82.   FOR j%=0 TO 8
  83.     x%=RAND(58)+65
  84.     IF x%>115
  85.       x%=ASC(MID$(x$,x%-116,1))
  86.     ELSE IF x%>90
  87.       ADD x%,6
  88.     ENDIF
  89.     feld$(i%)=feld$(i%)+CHR$(x%)
  90.   NEXT j%
  91.   feld2%(i%)=i%
  92.   PRINT feld$(i%),feld2%(i%)
  93. NEXT i%
  94. QSORT feld$() WITH vorgabe|(),41,feld2%()
  95. a$="| steigend sortiert:  Indexfeld (mitsort.):"
  96. PRINT AT(28,1);a$
  97. FOR i%=0 TO 40
  98.   PRINT AT(28,i%+3);"| ";feld$(i%)
  99.   PRINT AT(50,i%+3);feld2%(i%)
  100. NEXT i%
  101. sysfont(2)
  102. mt_frage
  103. > PROCEDURE sysfont(font%)
  104.   LOCAL code$,adr%
  105.   code$=MKL$(&HA0002009)+MKI$(&H4E75)
  106.   adr%=VARPTR(code$)
  107.   DPOKE CONTRL+2,0
  108.   DPOKE CONTRL+6,2
  109.   DPOKE CONTRL+10,102
  110.   LPOKE INTIN,LPEEK(C:adr%()+font%*4)
  111.   VDISYS 5
  112. RETURN
  113. > PROCEDURE mt_frage
  114.   PAUSE 5
  115.   RBOX 528,374,630,398
  116.   RBOX 529,375,630,396
  117.   RBOX 530,375,630,397
  118.   TEXT 538,390,"Klick/Taste"
  119.   DO
  120.     EXIT IF MOUSEK<>0 OR LEN(INKEY$)
  121.   LOOP
  122.   CLS
  123. RETURN
  124.