SUB EDIT00(NR,NC,IFLG) ON ERROR GOTO <> IFLG=0 \ & DIM #3,B(250,15) H9=.9E-38 MAXR=250 MAXC=15 <<*TYH>> PRINT \ PRINT "TYPE 'HELP' FOR A LIST OF EDIT CODES" <<*TYP>> INPUT "TYPE EDIT CODE (0 FOR NO MORE EDIT)";A$ PRINT IF A$<>"HELP" GOTO <> PRINT \ PRINT "THE FOLLOWING CODES SIGNIFY THE EDIT OPTIONS" PRINT " 1 - PRINT ENTIRE MATRIX" \ & PRINT " 2 - PRINT SUBMATRIX" \ & PRINT " 3 - DELETE A COLUMN" \ & PRINT " 4 - ADD A COLUMN" \ & PRINT " 5 - DELETE A ROW" \ & PRINT " 6 - ADD A ROW" \ & PRINT " 7 - REPLACE AN ENTIRE ROW" \ & PRINT " 8 - REPLACE AN INDIVIDUAL VALUE" \ & PRINT " 0 - NO MORE EDIT" \ & GOTO <> <<*SE1>> ON ERROR GOTO <> N=VAL(A$) IF N>=0 AND N<=8 GOTO <> PRINT "EDIT CODE MUST BE BETWEEN 0 AND 8. PLEASE TRY AGAIN" \ & GOTO <> <<*ERC>> PRINT "INVALID EDIT CODE. PLEASE TRY AGAIN" \ & RESUME <> <<*ON2>> ON ERROR GOTO <> IF N=0 GOTO <> <<*ONN>> ON N GOTO <>,<>,<>,<>,<>,<>,<>,<> ! REPLACE AN INDIVIDUAL VALUE <<*A>> INPUT "TYPE ROW AND COLUMN OF VALUE TO BE REPLACED";NR1;NC1 IF NR1>=1 AND NR1<=NR AND NC1>=1 AND NC1<=NC THEN GOTO <> PRINT "THE ROW NUMBER MUST BE BETWEEN 1 AND";NR \ & PRINT "THE COLUMN NUMBER MUST BE BETWEEN 1 AND";NC \ & PRINT "PLEASE TRY AGAIN" \ & GOTO <> <<*A1>> INPUT "NEW VALUE: (X FOR MISSING)";L$ IF L$<>"X" GOTO <> IF B(NR1,NC1)=H9 THEN GOTO <> ELSE & B(NR1,NC1)=H9 \ B(0,NC1)=B(0,NC1)-1. \ GO TO <> <<*A2>> A=VAL(L$) IF B(NR1,NC1)=H9 THEN B(0,NC1)=B(0,NC1)+1. B(NR1,NC1)=A <<*A3>> IFLG=1 PRINT GOTO <> ! REPLACE AN ENTIRE ROW <<*B>> INPUT "WHICH ROW DO YOU WANT TO REPLACE";NR1 IF NR1>=1 AND NR1<=NR GOTO <> PRINT "THE ROW NUMBER MUST BE BETWEEN 1 AND";NR \ & PRINT "PLEASE TRY AGAIN" \ & GOTO <> ! ADD A ROW <<*C>> IF NR=MAXR THEN PRINT "YOU CANNOT ADD A ROW. YOUR DATA" \ & PRINT "ALREADY CONTAINS";MAXR;" ROWS" \ & GOTO <> NR=NR+1 NR1=NR PRINT "NUMBER OF NEW ROW IS";NR <<*C1>> PRINT "TYPE";NC;" NUMBERS, ANY AMOUNT PER LINE" \ & PRINT "SEPARATE NUMBERS WITH A COMMA "; & "BUT DO NOT END A LINE WITH A COMMA" \ & PRINT "IF A VALUE IS MISSING, TYPE AN X WHERE THE VALUE"; & " WOULD NORMALLY OCCUR" IFLG=1 INPUT LINE L$ L$=LEFT(L$,LEN(L$)-2)+"," FOR K=1 TO NC <<*C2>> IZ=INSTR(1,L$,",") IF IZ>0 THEN GOTO <> <<*C3>> PRINT "TYPE IN MORE VALUES" INPUT LINE L$ L$=LEFT(L$,LEN(L$)-2)+"," GO TO <> <<*C4>> A$=LEFT(L$,IZ-1) \ & IF A$="X" THEN Y=H9 ELSE Y=VAL(A$) IF N=3 GOTO <> IF B(NR1,K)=H9 AND Y<>H9 THEN B(0,K)=B(0,K)+1. IF B(NR1,K)<>H9 AND Y=H9 THEN B(0,K)=B(0,K)-1. GO TO <> <<*C5>> IF Y<>H9 THEN B(0,K)=B(0,K)+1. <<*C6>> B(NR1,K)=Y L$=RIGHT(L$,IZ+1) NEXT K PRINT "THE DATA HAS BEEN ADDED TO YOUR MATRIX IN ROW";NR1 \ & GOTO <> ! DELETE A ROW <<*D>> IF NR>1 GO TO <> PRINT "YOU CANNOT DELETE A ROW. . ." \ & PRINT "YOU HAVE ONLY ONE ROW LEFT" \ & GOTO <> <<*D1>> INPUT "WHAT ROW NUMBER IS TO BE DELETED";ND IF ND>=1 AND ND<=NR GOTO <> PRINT "THE ROW NUMBER MUST BE BETWEEN 1 AND";NR \ & PRINT "PLEASE TRY AGAIN" \ & GOTO <> <<*D2>> FOR J=1 TO NC IF B(ND,J)<>H9 THEN B(0,J)=B(0,J)-1. NEXT J IF ND=NR THEN NR=NR-1 \ GO TO <> FOR I=ND+1 TO NR B(I-1,J)=B(I,J) FOR J=1 TO NC NEXT I NR=NR-1 <<*D3>> PRINT "THE NEW MATRIX HAS";NR;" ROWS AND";NC;" COLUMNS" IFLG=1 GOTO <> ! PRINT ENTIRE MATRIX <<*E>> NC1,NC8,NR1=1 \ NC2,NC9=NC \ NR2=NR GOTO <> ! PRINT SUBMATRIX <<*F>> IS=1 ON ERROR GOTO <> <<*F1>> INPUT "TYPE FIRST ROW, LAST ROW TO PRINT";NR1,NR2 IF NR1>=1 AND NR1<=NR AND NR2>=NR1 AND NR2<=NR GOTO <> PRINT "ROW NUMBERS MUST BE BETWEEN 1 AND";NR \ & PRINT "PLEASE TRY AGAIN " \ & GO TO <> <<*F2>> IS=2 INPUT "TYPE FIRST COLUMN, LAST COLUMN TO PRINT";NC1,NC2 IF NC1>=1 AND NC1<=NC AND NC2>=NC1 AND NC2<=NC GOTO <> PRINT "COLUMN NUMBERS MUST BE BETWEEN 1 AND";NC \ & PRINT "PLEASE TRY AGAIN" \ & GOTO <> <<*F3>> NC8=NC1 \ & NC9=NC2 <<*F4>> IF (NC9-NC8)>5 THEN NC9=NC8+5 PRINT \ PRINT "ROW";TAB(35);"COLUMN" \ PRINT I=10 FOR K=NC8 TO NC9 PRINT TAB(I);K; I=I+11 NEXT K PRINT FOR I=NR1 TO NR2 PRINT USING "### ",I; FOR J=NC8 TO NC9 IF B(I,J)=H9 THEN PRINT SPACE$(11); ELSE & PRINT USING " #####.####",B(I,J); NEXT J PRINT NEXT I PRINT \ PRINT IF NC9> GOTO <> <<*FE>> PRINT "YOU TYPED NON-NUMERIC ROW OR COLUMN NUMBERS" \ & PRINT "PLEASE RETYPE NUMBERS SEPARATED BY A COMMA" IF IS=1 THEN RESUME <> ELSE RESUME <> ! DELETE A COLUMN <<*H>> IF NC>1 GO TO <

> PRINT "YOU CANNOT DELETE A COLUMN. . ." \ & PRINT "YOU HAVE ONLY ONE COLUMN LEFT" \ & GOTO <> <<*H1>> INPUT "WHAT COLUMN IS TO BE DELETED";ND IF ND>=1 AND ND<=NC GOTO <

> PRINT "THE COLUMN NUMBER MUST BE BETWEEN 1 AND";NC \ & PRINT "PLEASE TRY AGAIN" \ & GOTO <

> <<*H2>> IF ND=NC THEN NC=NC-1 \ GOTO<> FOR K=0 TO NR B(K,J)=B(K,J+1) FOR J=ND TO NC-1 NEXT K NC=NC-1 GO TO <> ! ADD A COLUMN <<*I>> IF NC=MAXC THEN PRINT "YOU CANNOT ADD A COLUMN. YOUR DATA" \ & PRINT "ALREADY CONTAINS";MAXC;" COLUMNS" \ & GOTO <> NC=NC+1 PRINT "NUMBER OF NEW COLUMN IS";NC PRINT "TYPE";NR;" NUMBERS, ANY AMOUNT PER LINE" \ & PRINT "SEPARATE NUMBERS WITH A COMMA, BUT DO NOT END A LINE"; & " WITH A COMMA" \ & PRINT "IF A VALUE IS MISSING, TYPE AN X WHERE THE VALUE"; & " WOULD NORMALLY OCCUR" IFLG=1 INPUT LINE L$ L$=LEFT(L$,LEN(L$)-2)+"," B(0,NC)=0. FOR K=1 TO NR <<*I1>> IZ=INSTR(1,L$,",") IF IZ>0 GOTO <> <<*I2>> PRINT "TYPE IN MORE VALUES" INPUT LINE L$ L$=LEFT(L$,LEN(L$)-2)+"," GOTO <> <<*I3>> A$=LEFT(L$,IZ-1) \ IF A$="X" THEN B(K,NC)=H9 ELSE & B(K,NC)=VAL(A$) \ B(0,NC)=B(0,NC)+1. L$=RIGHT(L$,IZ+1) NEXT K PRINT "THE DATA HAS BEEN ADDED TO YOUR MATRIX IN COLUMN";NC GOTO <> <<*ERA>> RESUME <> <<*ERB>> PRINT "PLEASE TYPE ONLY NUMBERS WHEN NUMBERS ARE ASKED FOR" \ & PRINT "WHEN TWO OR MORE NUMBERS ARE REQUESTED, SEPARATE"; & " THEM WITH COMMAS" \ & PRINT "BUT DO NOT END A LINE WITH A COMMA" IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> IF ERL=<> THEN RESUME <> IF ERL=<

> THEN RESUME <

> IF N=4 OR N=6 OR N=7 THEN & PRINT "THE FIRST";K-1;" VALUES HAVE BEEN PUT INTO YOUR"; & " MATRIX" IF N=6 OR N=7 THEN RESUME <> ELSE IF N=4 THEN & RESUME <> ELSE RESUME <> <<*ENE>> SUBEND