home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug054.ark / ALFABETI.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  864 b   |  39 lines

  1. 10 PRINT "ALPHABETIZE"
  2. 20 ?
  3. 30 PRINT "(TO END PROGRAM ENTER 0)"
  4. 40 PRINT "NUMBER OF ITEMS";
  5. 50 INPUT Y
  6. 59 !    END PROGRAM?
  7. 69 !    LIMIT ARRAY TO MAXIMUM NUMBER OF ITEMS TO BE ENTERED IN ONE RUN
  8. 70 DIM A$(25)
  9. 80 FOR I=1 TO Y
  10. 90 PRINT "ITEM" I;
  11. 100 INPUT A$(I)
  12. 110 NEXT I
  13. 119 !    LOOP TO ALPHABETIZE DATA
  14. 1010 M=Y
  15. 1017 !    THE SORT TECHNIQUE USED IN LINES 1000-1180 COMPARES DATA ITEMS
  16. 1018 !    IN DIMINISHING INCREMENTS. THE FIRST PASS COMPARES ITEMS N/2
  17. 1019 !    ELEMENTS APART, AND SO ON UNTIL THE INCREMENT IS EXAUSTED.
  18. 1020 M=INT(M/2)
  19. 1030 IF M=0 THEN 1190
  20. 1040 K=Y-M
  21. 1050 J=1
  22. 1060 I=J
  23. 1070 L=I+M
  24. 1090 IF A$(I)<=A$(L) THEN 1160
  25. 1100 N=N+1
  26. 1110 T$=A$(I)
  27. 1120 A$(I)=A$(L)
  28. 1130 A$(L)=T$
  29. 1140 I=I-M
  30. 1150 IF I>=1 THEN 1070
  31. 1160 J=J+1
  32. 1170 IF J>K THEN 1020
  33. 1180 GOTO 1060
  34. 1190 FOR I=1 TO Y
  35. 1200 PRINT A$(I)
  36. 1210 NEXT I
  37. 1220 GOTO 40
  38. 1300 END
  39.