670 REM TABLE NOW HAS LOWEST L CHARACTERS; DO SORT ON THESE 680 GOSUB 2000 690 RESTORE 700 LET N=1 710 REM READ ALL L+L. PUT INTO TABLE ONLY THOSE > HIGHEST OF THE 720 REM LOWEST L CHARACTERS ALREADY SORTED. 730 FOR I=1 TO L+L 740 READ W$ 750 IF W$ > Z$ THEN 770 760 GOTO 790 770 GOSUB 4000 780 LET N=N+1 790 NEXT I 800 REM SORT THE HIGH L CHARACTERS. 810 GOSUB 2000 812 PRINT 815 PRINT "IF DOCUMENTATION AGREES WITH ABOVE RESULTS, THEN" 818 PRINT "*** TEST PASSED ***11 850 PRINT "SECTION 206.2: COLLATING MULTI-CHARACTER STRINGS." 860 PRINT 870 PRINT "THIS SECTION DISPLAYS SOME SUGGESTIVE TEST CASES TO" 880 PRINT "SHOW HOW THIS IMPLEMENTATION HANDLES COMPARISONS OF" 890 PRINT "MULTI-CHARACTER STRINGS. ALL STRINGS SHOWN ARE DELIMITED" 895 PRINT "BY APOSTROPHES TO ENABLE THE USER TO DISTINGUISH BLANKS" 897 PRINT "FROM NULL." 1120 PRINT "IF DOCUMENTATION AGREES WITH ABOVE RESULTS, THEN" 1130 PRINT "*** TEST PASSED ***11 2000 REM THIS SUBROUTINE SORTS AND PRINTS THE CHARACTERS IN A$ 2010 REM ALGORITHM IS SIMPLE EXCHANGE SORT 0$ 2020 FOR I=1 TO L-1 2030 FOR J=I+1 TO L 2040 LET N=I 2050 GOSUB 3000 2060 LET X$=W$ 2070 LET N=J 2080 GOSUB 3000 2090 LET Y$=W$ 2100 IF X$ < Y$ THEN 2180 2110 REM SWAP ITH AND JTH CHARACTERS 2120 LET N=I 2130 LET W$=Y$ 2140 GOSUB 4000 2150 LET N=J 2160 LET W$=X$ 2170 GOSUB 4000 2180 NEXT J 2190 NEXT I 2200 PRINT "." 2210 FOR N=1 TO L 2220 GOSUB 3000 2230 PRINT W$;"."; 2240 NEXT N 2250 PRINT 2260 RETURN 3000 REM SUBROUTINE TO GET NTH CHARACTER INTO W$ 3010 IF N > 7 THEN 3030 3020 ON N GOTO 3040, 3060, 3080, 3100,3120,3140,3160 3030 ON N-7 GOTO 3180, 3200, 3220, 3240,3260, 3280,3300, 3320 3040 LET W$=A$ 3050 GOTO 3340 3060 LET W$=B$ 3070 GOTO 3340 3080 LET W$=C$ 3090 GOTO 3340 3100 LET W$=D$ 3110 GOTO 3340 3120 LET W$=E$ 3130 GOTO 3340 3140 LET W$=F$ 3150 GOTO 3340 3160 LET W$=G$ 3170 GOTO 3340 3180 LET W$=H$ 3190 GOTO 3340 3200 LET W$=I$ 3210 GOTO 3340 3220 LET W$=J$ 3230 GOTO 3340 3240 LET W$=K$ 3250 GOTO 3340 3260 LET W$=L$ 3270 GOTO 3340 3280 LET W$=M$ 3290 GOTO 3340 3300 LET W$=N$ 3310 GOTO 3340 3320 LET W$=0$ 3340 RETURN 4000 REM SUBROUTINE TO GET W$ INTO NTH CHARACTER 4010 IF N > 7 THEN 4030 4020 ON N GOTO 4040, 4060,4080, 4100,4120,4140,4160 4030 ON N-7 GOTO 4180,4200, 4220,4240,4260,4280, 4300,4320 4040 LET A$=W$ 10 PRINT "PROGRAM FILE 207: ERROR ASSIGNMENT OF A STRING TO A" 20 PRINT " 30 PRINT " 40 PRINT NUMERIC VARIABLE." ANSI STANDARD 9.2" 50 PRINT "SECTION 207.1: ERROR ASSIGNMENT OF A STRING TO A" 60 PRINT "| 70 PRINT NUMERIC VARIABLE." 80 PRINT "THIS IS A TEST FOR A NON-STANDARD FEATURE OF MINIMAL BASIC." 90 PRINT "TO PASS THIS TEST, THE PROCESSOR MUST EITHER:" 100 PRINT 110 PRINT " 1) ACCEPT THE PROGRAM AND BE ACCOMPANIED BY DOCUMENTATION" 120 PRINT " ACCURATELY DESCRIBING THE FEATURE'S INTERPRETATION" BY THE PROCESSOR, OR" 130 PRINT 140 PRINT 150 PRINT " 2) REJECT THE PROGRAM WITH AN APPROPRIATE ERROR MESSAGE" 160 PRINT 170 PRINT "SEE THE NBS MINIMAL BASIC TEST PROGRAMS USER'S MANUAL" 180 PRINT "FOR DETAILED CRITERIA." 80 PRINT "THIS IS A TEST FOR A NON-STANDARD FEATURE OF MINIMAL BASIC." 90 PRINT "TO PASS THIS TEST, THE PROCESSOR MUST EITHER:" 100 PRINT 110 PRINT " 1) ACCEPT THE PROGRAM AND BE ACCOMPANIED BY DOCUMENTATION" 130 PRINT " 140 PRINT 150 PRINT " 2) REJECT THE PROGRAM WITH AN APPROPRIATE ERROR MESSAGE" 160 PRINT 170 PRINT "SEE THE NBS MINIMAL BASIC TEST PROGRAMS USER'S MANUAL" 180 PRINT "FOR DETAILED CRITERIA." *** ** |