* BUBBLE SORT PROGRAM SIMILIAR TO THE ONE ON PAGE 111 * OF THE REFERENCE MANUAL. IT SORTS A TWO DIMENSIONAL ARRAY. * THE ARGUMENTS ARE * ARRAY NAME * * L.P. WADE 3-20-70 DEC * SORTPAT = BREAK(',') . DIM1 ',' REM . DIM2 DEFINE('SORT(NAME)I,J') DEFINE('SWITCH(NAME,DIM1,DIM2,VAR)I,TEMP') DEFINE('BUBBLE(NAME,DIM1,DIM2,VAR)') :(DEFEND) SORT PROTOTYPE(NAME) SORTPAT :S(SORT1) OUTPUT = 'SORT CANNOT HANDLE THE ARRAY NAMED ' I OUTPUT = 'ILLEGAL PROTOTYPE = ' PROTOTYPE(NAME) . :(FRETURN) SORT1 I = LE(I,DIM1) I + 1 :F(RETURN) IDENT(NAME) :S(RETURN) LGT(NAME,NAME) :F(SORT1) SWITCH(NAME,DIM1,DIM2,I) BUBBLE(NAME,DIM1,DIM2,I) :(SORT1) SWITCH I = LE(I,DIM2) I + 1 :F(RETURN) TEMP = NAME NAME = NAME NAME = TEMP :(SWITCH) BUBBLE VAR = GT(VAR,1) VAR - 1 :F(RETURN) LGT(NAME,NAME) :F(RETURN) SWITCH(NAME,DIM1,DIM2,VAR) :(BUBBLE) DEFEND TAB = ' ' DEFINE('PRINTARRAY(NAME)TEMP,I,J') :(PRINTEND) PRINTARRAY PROTOTYPE(NAME) SORTPAT :S(PRINT1) OUTPUT = 'PRINTARRAY CANNOT HANDLE ARRAY ' OUTPUT = 'ILLEGAL PROTOTYPE = ' PROTOTYPE(NAME) :(FRETURN) PRINT1 I = NULL TEMP = NULL J = LE(J,DIM1) J + 1 :F(RETURN) PRINT2 I = LE(I,DIM2) I + 1 :F(PRINT3) EQ(I,1) IDENT(NAME) :S(PRINT1) TEMP = TEMP TAB NAME :(PRINT2) PRINT3 OUTPUT = TEMP :(PRINT1) PRINTEND