oddemann Posted February 27, 2018 Share Posted February 27, 2018 (edited) Link to BOOK!I will add the book in one post only, so that under the "book" the respons will be. Not spred out on many different pages. Is that OK?In the begynning I might jump around, as with this start! Program 2-3. Roman Numerals - TI-99/4; TI-99/4A 110 FOR I=1 TO 9 120 READ H$(I),T$(I),S$(I) 130 NEXT I 140 DATA C,X,I,CC,XX,II,CCC,XXX,III,CD,XL,IV,D,L,V 150 DATA DC,LX,VI,DCC,LXX,VII,DCCC,LXXX,VIII,CM,XC,IX 160 CALL CLEAR 170 R$="" 175 RANDOMIZE 180 N=INT(1999*RND)+1 190 NN=N 200 IF N<1000 THEN 230 210 R$="M" 220 N=N-1000 230 IF N<100 THEN 270 240 NR=INT(N/100) 250 R$=R$&H$(NR) 260 N=N-NR*100 270 IF N<10 THEN 310 280 NR=INT(N/10) 290 R$=R$&T$(NR) 300 N=N-NR*10 310 IF N=0 THEN 330 320 R$=R$&S$(N) 330 PRINT "GIVEN THE ROMAN NUMERAL" 340 PRINT R$ 350 PRINT :"WHAT IS THE CORRESPONDING" 360 PRINT "NUMBER?" 370 INPUT ANS 380 PRINT 390 IF ANS=NN THEN 430 400 PRINT "THE NUMBER IS";NN 410 INPUT "PRESS <ENTER>":ES 420 GOTO 160 430 PRINT "CORRECT I" 440 PRINT 450 PRINT "ANOTHER PROBLEM?" 460 PRINT "(Y/N)" 470 CALL KEY(0,K,S) 480 IF K=89 THEN 160 490 IF K<>78 THEN 470 500 END OK! Program 4-3. Graphics Demo - TI-99/4A 110 CALL CLEAR 120 PRINT "PRESS ANY KEY TO STOP." 130 FOR C=1 TO 16 140 CALL COLOR(C,C,C) 150 NEXT C 160 RANDOMIZE 170 CALL SOUND(-50,INT(1600*RND+110),2) 180 CALL HCHAR(INT(24*RND+1),INT(32*RND+1),8*INT(16*RND+1)+31) 190 CALL KEY(0,K,S) 200 IF S<1 THEN 160 210 END Program 4-7. Doodle - TI-99/4A 110 CALL CLEAR 120 PRINT "PRESS ARROW KEYS TO DRAW." 130 PRINT ::"PRESS THE SPACE BAR"::"TO CHANGE COLO ARS " 140 PRINT :::"PRESS <ENTER> TO START." 150 CALL KEY(0,K,S) 160 IF K<>13 THEN 150 170 CALL CLEAR 180 FOR C=1 TO 16 190 CALL COLOR(C,C,C) 200 NEXT C 210 X=12 220 Y=15 230 C=16 240 R=31+8*C 250 CALL HCHAR(X,Y, 260 CALL HCHAR(X,Y,R) 270 CALL KEY(0,K,S) 280 IF K<>69 THEN 320 290 DX=-1 300 DY=0 tms 310 GOTO 490 320 IF K<>68 THEN 360 330 DX=0 340 DY=1 350 GOTO 490 360 IF K<>88 THEN 400 370 DX=1 380 DY=0 390 GOTO 490 400 IF K<>83 THEN 440 410 DX=0 420 DY=-1 430 GOTO 490 440 IF K<>32 THEN 250 450 C=C-1 460 IF C>0 THEN 240 470 C=16 480 GOTO 240 490 X=X+DX 500 Y=Y+DY 510 X=INT(24*((X-1)/24-INT((X-1)/24)))+1 520 Y=INT(32*((Y-1)/32-INT((Y-1)/32)))+1 530 GOTO 250 540 END Program 4-10. Color Code - TI-99/4A 100 CALL CLEAR 110 PRINT TAB(7);"COLOR CODE" 120 CALL CHAR(93,"3C7EFFFFFFFF7E3C") 130 PRINT ::::"GUESS THE CORRECT SEQUENCE" 140 PRINT "OF FOUR COLORS." 150 CALL CHAR(120,"3C7EFFFFFFFF7E3C") 160 PRINT :"GUESS BY PRESSING THE" 170 PRINT "COLOR NUMBERS." 180 CALL COLOR(12,16,1) 190 PRINT :::CHR$(93);" RIGHT COLOR AND POSITION" 200 PRINT :CHR$(120);" RIGHT COLOR ONLY" 210 FOR I=1 TO 3 220 CALL CHAR((11+I)*8,"0") 230 CALL CHAR((11+I)*8+1,"FFFFFFFFFFFFFFFF") 240 NEXT I 250 FOR I=1 TO 6 260 READ C(I) 270 NEXT I 280 DATA 96,97,104,105,112,113 290 CALL COLOR(9,3,16) 300 CALL COLOR(10,5,12) 310 CALL COLOR(11,7,14) 320 CALL CHAR(92,"FFFFFFFFFFFFFFFFF") 330 PRINT :::"PRESS ANY KEY TO START."; 340 CALL KEY(0,K,S) 350 IF S<1 THEN 340 360 CALL CLEAR 370 FOR I=9 TO 17 380 CALL VCHAR(4,I,92,20) 390 NEXT I 400 FOR I=1 TO 4 410 RANDOMIZE 420 A(I)=INT(RND*6+1) 430 NEXT I 440 FOR I=1 TO 6 450 CALL HCHAR(1,3*I-1,48+I) 460 CALL HCHAR(1,3*I,C(I)) 470 NEXT I 480 FOR I=1 TO 7 490 CALL HCHAR(1,21+I,ASC(SEG$("0-ERASE",I,1))) 500 NEXT I 510 I=0 520 I=I+1 530 IF I>9 THEN 930 540 IA=3+2*I 550 CALL HCHAR(IA,8,48+I) 560 FOR J=1 TO 4 570 JA=8+2*J 580 CALL SOUND(100,1497,2) 590 CALL KEY(0,K,S) 600 CALL HCHAR(IA,JA,92) 610 CALL HCHAR(IA,JA,32) 620 IF S<1 THEN 590 630 IF (K>47)*(K<55)<>1 THEN 590 640 IF K<>48 THEN 690 650 FOR K=J TO 1 STEP -1 660 CALL HCHAR(IA,8+K*2,92) 670 NEXT K 680 GOTO 560 690 B(J)=K-48 700 CALL HCHAR(IA,JA,C(K-48)) 710 NEXT J 720 L=1 730 FOR J=1 TO 4 740 D(J)=A(J) 750 IF A(J)<>B(J)THEN 800 760 CALL HCHAR(IA,21+L,93) 770 B(J)=0 780 D(J)=8 790 L=L+1 800 NEXT J 810 IF L=5 THEN 990 820 FOR J=1 TO 4 830 FOR J1=1 TO 4 840 IF D(J)<>B(J1)THEN 900 850 CALL HCHAR(IA,21+L,120) 860 B(J1)=0 870 D(J)=8 880 L=L+1 890 IF L=5 THEN 520 900 NEXT J1 910 NEXT J 920 GOTO 520 930 CALL SOUND(150,330,2) 940 CALL SOUND(150,262,2) 950 FOR J=1 TO 4 960 CALL HCHAR(23,8+2*J,C(A(J))) 970 NEXT J 980 GOTO 1040 990 FOR J=1 TO 3 1000 CALL SOUND(100,262,2) 1010 CALL SOUND(100,330,2) 1020 CALL SOUND(100,392,2) 1030 NEXT J 1040 PRINT "TRY AGAIN? (Y/N)"; 1050 CALL KEY(0,K,S) 1060 IF K=89 THEN 360 1070 IF K<>78 THEN 1050 1080 CALL CLEAR 1090 END Program 4-14. Matching Shapes - TI-99/4A 110 DEF R=INT(12*RND+5) 120 GOTO 480 130 CALL VCHAR(X,Y,96,3) 140 CALL HCHAR(X+1,Y-1,96,3) 150 RETURN 160 FOR I=X TO X+2 170 CALL HCHAR(I,Y-1,104,3) 180 NEXT I 190 RETURN 200 CALL HCHAR(X,Y-1,113) 210 CALL VCHAR(X,Y,112,3) 220 CALL HCHAR(X,Y+1,114) 230 CALL HCHAR(X+1,Y-1,112,3) 240 CALL HCHAR(X+2,Y-1,116) 250 CALL HCHAR(X+2,Y+1,115) 260 RETURN 270 CALL HCHAR(X,Y-1,121) 280 CALL HCHAR(X+1,Y-1,120) 290 CALL HCHAR(X+1,Y,121) 300 CALL HCHAR(X+2,Y-1,120,2) 310 CALL HCHAR(X+2,Y+1,121) 320 RETURN 330 CALL VCHAR(X,Y,128,3) 340 CALL HCHAR(X,Y-1,129) 350 CALL HCHAR(X,Y+1,130) 360 CALL HCHAR(X+1,Y+1,131) 370 CALL HCHAR(X+2,Y+1,132) 380 CALL HCHAR(X+2,Y-1,133) 390 CALL HCHAR(X+1,Y-1,134) 400 RETURN 410 CALL HCHAR(X,Y,137) 420 CALL HCHAR(X+1,Y-1,138) 430 CALL VCHAR(X+1,Y,136,2) 440 CALL HCHAR(X+1,Y+1,139) 450 CALL HCHAR(X+2,Y-1,140) 460 CALL HCHAR(X+2,Y+1,141) 470 RETURN 480 CALL CLEAR 490 PRINT TAB(7);"MATCHING SHAPES":::::::::::: 500 FOR C=96 TO 136 STEP 8 510 CALL CHAR(C,"FFFFFFFFFFFFFFFF") 520 NEXT C 530 FOR I=1 TO 16 540 READ C,C$ 550 CALL CHAR(C,C$) 560 NEXT I 570 DATA 113,00030F1F3F3F7F7F,114,00C0F0F8FCFCFEFE,115,FEFEFCFCF8F0C,116,7F7F3F3F1F0F03,121,80C0E0F0F8FCFEFF 580 DATA 129,0101030307070F0F,130,8080C0C0E0E0F0F,131,F8F8FCFCFCFCF8F8,132,F0F0E0E0C0C0808,133 590 DATA 0F0F070703030101,134,1F1F3F3F3F3F1F1F,137,18183C3C7E7EFFFF,138,0101030307070F0F,139,8080C0C0E0E0F0F 600 DATA 140,1F1F3F3F7F7FFFFF,141,F8F8FCFCFEFEFFFF 610 FOR P=1 TO 10 620 CALL CLEAR 630 X=11 640 Y=15 650 RANDOMIZE 660 N=INT(6*RND+1) 670 CALL COLOR(8+N,R,1) 680 ON N GOSUB 130,160,200,270,330,410 690 D=INT(4*RND+1) 700 FOR M=1 TO 4 710 X=21 720 Y=7*M-1 730 IF MOD THEN 770 740 J(M)=N 750 ON N GOSUB 130,160,200,270,330,410 760 GOTO 860 770 E=INT(6*RND+1) 780 IF E=N THEN 770 790 IF M=1 THEN 830 800 FOR L=1 TO M-1 810 IF E=J(L)THEN 770 820 NEXT L 830 J(M)=E 840 CALL COLOR(8+E,R,1) 850 ON E GOSUB 130,160,200,270,330,410 860 NEXT M 870 PRINT TAB(4);"1 2 3 4" 880 PRINT ::"WHICH SHAPE MATCHES?"::: 890 CALL SOUND(150,1497,2) 900 CALL KEY(0,K,S) 910 IF S<1 THEN 900 920 IF K=48+D THEN 960 930 CALL SOUND(100,330,2) 940 CALL SOUND(100,262,2) 950 GOTO 900 960 CALL HCHAR(19,7*D-2,42,3) 970 CALL HCHAR(21,3,32,20) 980 CALL SOUND(100,262,2) 990 CALL SOUND(100,330,2) 1000 CALL SOUND(100,392,2) 1010 CALL SOUND(200,523,2) 1020 NEXT P 1030 PRINT ::"TRY AGAIN? (Y/N)" 1040 CALL KEY(0,K,S) 1050 IF K=89 THEN 600 1060 IF K<>78 THEN 1040 1070 CALL CLEAR 1080 END Problem!!! Stops in line 680 Program 4-18. Counting Shapes - TI-99/4A 110 GOTO 470 120 CALL VCHAR(X,Y,96,3) 130 CALL HCHAR(X+1,Y-1,96,3) 140 RETURN 150 FOR I=X TO X+2 160 CALL HCHAR(I,Y-1,104,3) 170 NEXT I 180 RETURN 190 CALL HCHAR(X,Y-1,113) 200 CALL VCHAR(X,Y,112,3) 210 CALL HCHAR(X,Y+1,114) 220 CALL HCHAR(X+1,Y-1,112,3) 230 CALL HCHAR(X+2,Y-1,116) 240 CALL HCHAR(X+2,Y+1,115) 250 RETURN 260 CALL HCHAR(X,Y-1,121) 270 CALL HCHAR(X+1,Y-1,120) 280 CALL HCHAR(X+1,Y,121) 290 CALL HCHAR(X+2,Y-1,120,2) 300 CALL HCHAR(X+2,Y+1,121) 310 RETURN 320 CALL VCHAR(X,Y,128,3) 330 CALL HCHAR(X,Y-1,129) 340 CALL HCHAR(X,Y+1,130) 350 CALL HCHAR(X+1,Y+1,131) 360 CALL HCHAR(X+2,Y+1,132) 370 CALL HCHAR(X+2,Y-1,133) 380 CALL HCHAR(X+1,Y-1,134) 390 RETURN 400 CALL HCHAR(X,Y,137) 410 CALL HCHAR(X+1,Y-1,138) 420 CALL VCHAR(X+1,Y,136,2) 430 CALL HCHAR(X+1,Y+1,139) 440 CALL HCHAR(X+2,Y-1,140) 450 CALL HCHAR(X+2,Y+1,141) 460 RETURN 470 CALL CLEAR 480 PRINT TAB(7);"COUNTING SHAPES": 490 FOR C=96 TO 136 STEP 8 500 CALL CHAR(C,"FFFFFFFFFFFFFFFF") 510 NEXT C 520 FOR I=1 TO 16 530 READ C,C$ 540 CALL CHAR(C,C$) 550 NEXT I 560 DATA 113,00030F1F3F3F7F7F,114,00C0F0F8FCFCFEFE,115,FEFEFCFCF8F0C,116,7F7F3F3F1F0F03,121,80C0E0F0F8FCFEFF 570 DATA 129,0101030307070F0F,130,8080C0C0E0E0F0F,131,F8F8FCFCFCFCF8F8,132,F0F0E0E0C0C0808,133 580 DATA 0F0F070703030101,134,1F1F3F3F3F3F1F1F,137,18183C3C7E7EFFFF,138,0101030307070F0F,139,8080C0C0E0E0F0F 590 DATA 140,1F1F3F3F7F7FFFFF,141,F8F8FCFCFEFEFFFF 600 FOR I=1 TO 9 610 READ X1(I),Y1(I) 620 NEXT I 630 DATA 8,5,9,11,7,17,10,23,14,7,13,16,14,28,19,11,18,22 640 FOR K=1 TO 10 650 CALL CLEAR 660 C=INT(12*RND+5) 670 N=INT(9*RND+1) 680 S=INT(6*RND+1) 690 CALL COLOR(S+8,C,1) 700 FOR L=1 TO N 710 X=X1(L) 720 Y=Y1(L) 730 ON S GOSUB 120,150,190,260,320,400 740 NEXT L 750 PRINT "HOW MANY OBJECTS?" 760 CALL SOUND(100,1497,2) 770 CALL KEY(0,KE,ST) 780 IF ST<1 THEN 770 790 CALL HCHAR(23,22,KE) 800 IF KE=48+N THEN 850 810 CALL SOUND(100,330,2) 820 CALL SOUND(100,262,2) 830 CALL HCHAR(23,22,32) 840 GOTO 760 850 CALL SOUND(100,262,2) 860 CALL SOUND(100,330,2) 870 CALL SOUND(100,392,2) 880 CALL SOUND(200,523,2) 890 NEXT K 900 CALL CLEAR 910 PRINT "TRY AGAIN? (Y/N)" 920 CALL KEY(0,KE,ST) 930 IF KE=89 THEN 640 940 IF KE<>78 THEN 920 950 CALL CLEAR 960 END Program 4-21. Locating Points - TI-99/4A 100 DEF R(N)=INT(N*RND+1) 110 CALL CLEAR 120 PRINT " *******************":" *";TAB(23);"*":" * LOCATING POINTS *" 130 PRINT " *";TAB(23);"*":" *******************":::::: 140 A$="1818181818181818" 150 B$="181818FFFF181818" 160 C$="000000FFFF" 170 FOR C=96 TO 112 STEP 8 180 CALL CHAR(C,A$) 190 CALL CHAR(C+1,B$) 200 CALL CHAR(C+2,C$) 210 NEXT C 220 CALL CHAR(120,"183C7EFFFF7E3C18") 230 CALL CHAR(128,"183C7EFFFF7E3C18") 240 CALL CHAR(129,"00000000030C30C") 250 CALL CHAR(130,"030C30C") 260 CALL CHAR(94,"00102828444482FE") 270 CALL COLOR(10,5,1) 280 CALL COLOR(11,10,1) 290 CALL COLOR(12,11,1) 300 CALL COLOR(13,7,1) 310 CALL CHAR(140,"1010101010101") 320 CALL CHAR(141,"000000FF") 330 CALL CHAR(142,"101010F") 340 CALL COLOR(14,13,1) 350 A$="* h h h h h h h" 360 B$="ajjijjijjijjijjijjijji" 370 C$="abbabbabbabbabbabbabbabb" 380 CALL CLEAR 390 CALL COLOR(2,2,1) 400 GOTO 610 ** 410 CALL SOUND(100,330,2) 420 CALL SOUND(100,262,2) 430 RETURN 440 CALL SOUND(100,262,2) 450 CALL SOUND(100,330,2) 460 CALL SOUND(100,392,2) 470 CALL SOUND(200,523,2) 480 RETURN 490 CALL CLEAR 500 PRINT " Y":" ";A$:" ^ ";A$:" 4";B$:" ";A$:" ";A$:" 3";B$ 510 PRINT " ";A$:" ";A$:" 2";B$ 520 PRINT " ";A$:" ";A$:" 1";B$:" ";A$:" ";A$:" 0";C$ 530 PRINT " 0 12 3 4 5 6 7"::: 540 CALL HCHAR(20,31,88) 550 RETURN 560 PRINT TAB(16);"PRESS <ENTER>"; 570 CALL KEY(0,K,S) 580 IF K<>13 THEN 570 590 CALL HCHAR(24,18,32,13) 600 RETURN 610 GOSUB 490 620 PRINT "THE LOCATION OF A POINT IS":"GIVEN BY ITS X-COORDINATE" 630 PRINT "AND Y-COORDINATE (X,Y)" 640 RANDOMIZE 650 X=R(5) 660 GOSUB 1790 670 GOSUB 1840 680 CALL HCHAR(Y1,X1+2,40) 690 CALL HCHAR(Y1,X1+3,48+X) 700 CALL HCHAR(Y1,X1+4,44) 710 GOSUB 1880 720 CALL HCHAR(Y1,X1+5,48+Y) 730 CALL HCHAR(Y1,X1+6,41) 740 PRINT :"WANT ANOTHER EXAMPLE? (Y/N)"; 750 CALL KEY(0,K,S) 760 IF K=89 THEN 610 770 IF K<>78 THEN 750 780 CALL CLEAR 790 PRINT "YOU WILL BE SHOWN A POINT."::"PRESS THE NUMBER OF THE" 800 PRINT :"X-COORDINATE THEN THE" 810 PRINT :"NUMBER OF THE Y-COORDINATE."::::::: 820 GOSUB 560 830 CALL CLEAR 840 GOSUB 490 850 PRINT ::: 860 RANDOMIZE 870 GOSUB 1780 880 CALL HCHAR(21,7,40) 890 CALL HCHAR(21,9,44) 900 CALL HCHAR(21,11,41) 910 CALL KEY(0,K,S) 920 CALL HCHAR(21,8,63) 930 CALL HCHAR(21,8,32) 940 IF S<1 THEN 910 950 CALL HCHAR(21,8,K) 960 X2=K 970 CALL KEY(0,K,S) 980 CALL HCHAR(21,10,63) 990 CALL HCHAR(21,10,32) 1000 IF S<1 THEN 970 1010 CALL HCHAR(21,10,K) 1020 Y2=K 1030 IF X2<>X+48 THEN 1100 1040 IF Y2<>Y+48 THEN 1100 1050 GOSUB 440 1060 PRINT "PRESS":"1 FOR SAME TYPE PROBLEM":"2 TO CONTINUE PROGRAM"; 1070 CALL KEY(0,K,S) 1080 IF K=49 THEN 830 1090 IF K=50 THEN 1160 ELSE 1070 1100 GOSUB 410 1110 GOSUB 1840 1120 GOSUB 1880 1130 PRINT "THE CORRECT ANSWER IS (";STR$(X);",";STR$(Y);")" 1140 GOSUB 560 1150 GOTO 830 1160 CALL CLEAR 1170 PRINT "NOW YOU WILL BE GIVEN THE"::"COORDINAT" 1180 PRINT :"USE THE ARROW KEYS TO MOVE"::"THE POINT TO THE CORRECT" 1190 PRINT :"PLACE, THEN PRESS <ENTER>."::::: 1200 GOSUB 560 1210 CALL CLEAR 1220 GOSUB 490 1230 RANDOMIZE 1240 X=R(7) 1250 Y=R(4) 1260 X1=7+3*X 1270 Y1=17-3*Y 1280 PRINT :"PLOT (";STR$(X);",";STR$(Y);")":: 1290 C1=97 1300 A=17 1310 A1=A 1320 B=7 1330 B1=B 1340 CALL HCHAR(A,B,120) 1350 CALL KEY(0,K,S) 1360 IF S<1 THEN 1350 1370 IF K=13 THEN 1620 1380 IF K<>69 THEN 1430 1390 IF A=5 THEN 1350 1400 CALL GCHAR(A-3,B,C) 1410 A=A-3 1420 GOTO 1570 1430 IF K<>88 THEN 1480 1440 IF A=17 THEN 1350 1450 CALL GCHAR(A+3,B,C) 1460 A=A+3 1470 GOTO 1570 1480 IF K<>83 THEN 1530 1490 IF B=7 THEN 1350 1500 CALL GCHAR(A,B-3,C) 1510 B=B-3 1520 GOTO 1570 1530 IF K<>68 THEN 1350 1540 IF B=28 THEN 1350 1550 CALL GCHAR(A,B+3,C) 1560 B=B+3 1570 CALL HCHAR(A1,B1,C1) 1580 A1=A 1590 B1=B 1600 C1=C 1610 GOTO 1340 1620 CALL SOUND(150,1397,2) 1630 CALL GCHAR(Y1,X1,C) 1640 IF C=120 THEN 1710 1650 GOSUB 410 1660 CALL HCHAR(Y1,X1,128) 1670 GOSUB 1840 1680 GOSUB 1880 1690 GOSUB 560 1700 GOTO 1210 1710 GOSUB 440 1720 PRINT "PRESS":"1 FOR SAME TYPE PROBLEM": "2 TO END PROGRAM"; 1730 CALL KEY(0,K,S) 1740 IF K=49 THEN 1210 1750 IF K<>50 THEN 1730 1760 CALL CLEAR 1770 STOP 1780 X=R(7) 1790 Y=R(4) 1800 X1=7+3*X 1810 Y1=17-3*Y 1820 CALL HCHAR(Y1,X1,128) 1830 RETURN 1840 FOR I=Y1+1 TO 17 1850 CALL HCHAR(I,X1,112) 1860 NEXT I 1870 RETURN 1880 FOR I=X1-1 TO 7 STEP -1 1890 CALL HCHAR(Y1,I,114) 1900 NEXT I 1910 RETURN 1920 END BUG! But works! Program 5-3. Musical Keyboard - TI-99/4A 110 DIM N(13,2),L$(2),M$(2) 120 CALL CLEAR 130 CALL SCREEN( 140 PRINT " ** MUSICAL KEYBOARD **"::::::::::: 150 CALL CHAR(97,"0") 160 CALL CHAR(98,"FFFFFFFFFFFFFFFF") 170 CALL CHAR(99,"0101010101010101") 180 CALL CHAR(100,"808080808080808") 190 L$(1)="dabbabbacdabbabbabbacdabbabb" 200 L$(2)="bbabbabbacdabbabbacdabbabbab" 210 M$(l)="dacdacdacdacdacdacdacdacdacd" 220 M$(2)="cdacdacdacdacdacdacdacdacdac" 230 CALL COLOR(9,2,16) 240 FOR C=1 TO 13 250 READ N(C,1),N(C,2) 260 NEXT C 270 DATA 67,262,68,294,69,330,70,349,71,392,65,440,66,494,67,523,68,587,69,659,70,698,71,784,65,880 280 R=1 290 GOSUB 750 300 PRINT ::"THE LETTER NAMES OF THE KEYS"::"ARE THE FIRST 7 LETTERS"::"OF THE ALPHABET." 310 DATA 67,68,69,70,71,65,66,67,68 320 FOR C=4 TO 28 STEP 3 330 READ G 340 CALL HCHAR(15,C,G) 350 NEXT C 360 PRINT :"THE KEYBOARD HAS GROUPS OF"::"TWO AND THREE BLACK KEYS." 370 GOSUB 870 380 GOSUB 750 390 PRINT :"YOU MAY REMEMBER THAT JUST"::"LEFT OF THE TWO BLACK KEYS"::"IS THE KEY CALLED ,C'.": 400 CALL HCHAR(14,4,67) 410 CALL HCHAR(14,25,67) 420 GOSUB 870 430 SC=0 440 FOR T=1 TO 10 450 F=0 460 RANDOMIZE 470 R=INT(2*RND+1) 480 X=INT(9*RND+1) 490 J=3*X+R 500 GOSUB 750 510 PRINT ::::TAB(;"NAME THE KEY":::: 520 IF R=1 THEN 540 530 X=X+4 540 CALL HCHAR(14,J,63) 550 CALL KEY(0,K,S) 560 CALL COLOR(4,16,16) 570 CALL COLOR(4,7,16) 580 IF S<1 THEN 550 590 IF K=N(X,1)THEN 630 600 CALL SOUND(400,-8,2) 610 F=1 620 GOTO 550 630 CALL HCHAR(14,J,K) 640 CALL SOUND(600,N(X,2),2)c 650 CALL SOUND(1,N(X,2),30) 660 IF F=1 THEN 680 670 SC=SC+1 680 NEXT T 690 CALL COLOR(4,2,1) 700 PRINT "SCORE";SC;"OUT OF 10" 710 PRINT ::"TRY AGAIN? (Y/N)" 720 CALL KEY(0,K,S) 730 IF K=89 THEN 430aq 740 IF K=78 THEN 910 ELSE 720 750 CALL CLEAR 760 FOR C=1 TO 12 770 PRINT L$(R) 780 IF R=2 THEN 800 790 CALL HCHAR(23,31,97) 800 NEXT C 810 FOR C=1 TO 3 820 PRINT M$(R) 830 IF R=2 THEN 850 840 CALL HCHAR(23,31,97) 850 NEXT C 860 RETURN 870 PRINT :"PRESS <ENTER>."; 880 CALL KEY(0,K,S) 890 IF K<>13 THEN 880 900 RETURN 910 CALL CLEAR 920 END Bugs, works kinda! Program 5-6. Treble Clef - TI-99/4A 110 DIM N(9,2) 120 CALL CLEAR 130 PRINT TAB(6);"** TREBLE CLEF **":::::::::::: 140 FOR C=1 TO 9 150 READ N(C,1),N(C,2) 160 NEXT C 170 DATA 70,698,69,659,68,587,67,523,66,494,65,440,71,392,70,349,69,330 180 FOR C=96 TO 131 190 READ C$ 200 CALL CHAR(C,C$) 210 NEXT C 220 DATA 000000FF,0000384482828282,8282828282828282,848488FF889090A,0000000000010102,A0A0C0C0C040404 230 DATA 040810FF2040808,404040FF2020202,010204040810101,202020202020202,202040FF4040404,000000FF0304081 240 DATA 101010FF1010101,000000FF18040201,808080808080808,102020202040404,0808080808080808,C020201010080808 250 DATA 808080FF4040402,404040FF2020100C,040404FF04040404,2020101008040403,0202020202010101,0808101020408 260 DATA 804038FF,010101FF01010101,030C30FF,0101010101010101,0101010111110E,00000000000F30C,0000000000F00C03 270 DATA 0102020404040201,708808304040004,804040202020408,8060100F,010608F 280 L$="''''''''''''''''''''''" 290 GOSUB 820 300 PRINT :"THINK OF THE WORD 'FACE' FOR"::"THE NOTE NAMES ON SPACES.":: 310 CALL HCHAR(14,14,70) 320 CALL HCHAR(12,17,65) 330 CALL HCHAR(10,20,67) 340 CALL HCHAR(8,23,69) 350 GOSUB 870 360 GOSUB 820 370 PRINT :"MEMORIZE THIS PHRASE TO HELP"::"LEARN LINE NOTES E G B D F.":: 380 DATA 15,69,15,86,15,69,15,82,15,89,13,71,13,79,13,79,13,68,11,66,11,79,11,89,9,68,9,79 390 DATA 9,69,9,83,7,70,7,73,7,78,7,69 400 FOR I=9 TO 28 410 READ C,G 420 CALL HCHAR(C,I,G) 430 NEXT I 440 GOSUB 870 450 GOSUB 820 460 PRINT TAB(;"NAME THE NOTE"::::: 470 FOR T=1 TO 10 480 RANDOMIZE 490 X=INT(9*PND+1) 500 J=5+X 510 CALL HCHAR(J,20,125) 520 CALL HCHAR(J,21,126) 530 CALL HCHAR(J+1,19,127) 540 CALL HCHAR(J+1,22,129) 550 CALL HCHAR(J+2,20,130) 560 CALL HCHAR(J+2,21,131) 570 CALL HCHAR(J+1,21,128) 580 CALL SOUND(150,1397,4) 590 CALL KEY(0,K,S) 600 IF S<1 THEN 590 610 IF K=N(X,1)THEN 640 620 CALL SOUND(200,-5,4) 630 GOTO 590 640 CALL HCHAR(J+1,21,N(X,1)) 650 CALL SOUND(500,N(X,2),2) 660 CALL SOUND(1,N(X,2),30) 670 IF X/2=INT(X/2)THEN 720 680 CALL HCHAR(J,20,32,2) 690 CALL HCHAR(J+1,19,96,4) 700 CALL HCHAR(J+2,20,32,2) 710 GOTO 750 720 CALL HCHAR(J,20,96,2) 730 CALL HCHAR(J+1,19,32,4) 740 CALL HCHAR(J+2,20,96,2) 750 NEXT T 760 PRINT "GOOD! TRY AGAIN? (Y/N)"; 770 CALL KEY(0,K,S) 780 IF K=78 THEN 920 790 IF K<>89 THEN 770 800 CALL HCHAR(24,13,32,15) 810 GOTO 450 820 CALL CLEAR 830 PRINT TAB(9);"TREBLE CLEF"::: 840 PRINT " a":" b":"'''c''"&L$:" de":"''fg''"&L$;" h i":"'jklm'"&L$ 850 PRINT " nop q":"'rst't"&L$:" u v w":"''xyz'"&L$:" {":" {":" !" 860 RETURN 870 PRINT :TAB(16);"PRESS <ENTER>"; 880 CALL KEY(0,K,S) 890 IF K<>13 THEN 880 900 CALL HCHAR(24,18,32,13) 910 RETURN 920 CALL CLEAR 930 END Bug! Program 5-9. Bass Clef - TI-99/4A 110 DIM N(9,2) 120 CALL CLEAR 130 PRINT TAB(7);"** BASS CLEF **"::::::::::: 140 FOR I=1 TO 9 150 READ N(I,1),N(I,2) 160 NEXT I 170 DATA 65,220,71,196,70,175,69,165,68,147,67,131,66,123,65,110,71,110 180 FOR I=96 TO 114 190 READ C$ 200 CALL CHAR(I,C$) 210 NEXT I 220 DATA 000000FF,000000FF0F10608,000000FFFF,000000FF80700C03,010204181020204,8040202010080804,40583CFF3C18 230 DATA 040202FF01010101,0101020204040408,080810FF2040808,0101020408,000E1F1F1F0E 240 DATA 00000000000F30C,0000000000F00C03,0102020404040201,708808304040004,804040202020408,8060100F,010608F 250 L$="''''''''''''''''''''''" 260 GOSUB 760 270 PRINT :"LEARN THIS PHRASE FOR THE"::"NOTES ON SPACES, A C E G.":: 280 GOSUB 800 290 DATA 13,30,15,65,15,76,15,76,15,32,13,67,13,79,13,87,13,83,13,32,11,69,11,65,11,84,11,32 300 DATA 9,71,9,82,9,65,9,83,9,83 310 GOSUB 860 320 GOSUB 760 330 PRINT :"THIS PHRASE HELPS YOU KNOW"::"THE LINE NOTES, G B D F A.":: 340 GOSUB 800 350 DATA 8,32,16,71,16,82,16,69,16,65,16,84,14,66,14,73,14,71,12,68,12,79,12,71,12,83,10,70,10,73 360 DATA 10,71,10,72,10,84,8,65,8,78,8,73,8,77,8,65,8,76,8,83,8,32 370 GOSUB 860 380 GOSUB 760 390 PRINT TAB(;"NAME THE NOTE"::::: 400 FOR T=l TO 10 410 RANDOMIZE 420 X=INT(9*RND+1) 430 J=6+X 440 CALL HCHAR(J,20,108) 450 CALL HCHAR(J,21,109) 460 CALL HCHAR(J+1,19,110) 470 CALL HCHAR(J+1,22,112) 480 CALL HCHAR(J+2,20,113) 490 CALL HCHAR(J+2,21,114) 500 CALL HCHAR(J+1,21,111) 510 CALL SOUND(150,1397,4) 520 CALL KEY(0,K,S) 530 IF S<1 THEN 520 540 IF K=N(X,1)THEN 570 550 CALL SOUND(200,-5,4) 560 GOTO 520 570 CALL HCHAR(J+1,21,N(X,1)) 580 IF X<9 THEN 610 590 CALL SOUND(500,1475,30,1475,30,1475,30,-4,1) 600 GOTO 620 610 CALL SOUND(500,N(X,2),2) 620 CALL SOUND(1,N(X,2),30) 630 IF X/2=INT(X/2)THEN 680 640 CALL HCHAR(J,20,32,2) 650 CALL HCHAR(J+1,19,96,4) 660 CALL HCHAR(J+2,20,32,2) 670 GOTO 710 680 CALL HCHAR(J,20,96,2) 690 CALL HCHAR(J+1,19,32,4) 700 CALL HCHAR(J+2,20,96,2) 710 NEXT T 720 PRINT :"GOODl TRY AGAIN? (Y/N)" 730 CALL KEY(0,K,S) 740 IF K=89 THEN 380 750 IF K=78 THEN 900 ELSE 730 760 CALL CLEAR 770 PRINT TAB(10);"BASS CLEF"::: 780 PRINT ::"''abc'"&L$:" d e k":"'f'''g"&L$:" h k":"'''''i"&L$:" h":"''''i'"&L$:" j":"''''''"&L$::: 790 RETURN 800 READ C,J 810 FOR I=C TO J 820 READ K,G 830 CALL HCHAR(K,I,G) 840 NEXT I 850 RETURN 860 PRINT TAB(16);"PRESS <ENTER>"; 870 CALL KEY(0,K,S) 880 IF K<>13 THEN 870 890 RETURN 900 CALL CLEAR 910 END BAD LINE NUMBER IN 310 Edited February 28, 2018 by oddemann Quote Link to comment Share on other sites More sharing options...
Opry99er Posted February 27, 2018 Share Posted February 27, 2018 660 should be 660 N=INT(RND*6+1) Quote Link to comment Share on other sites More sharing options...
oddemann Posted February 27, 2018 Author Share Posted February 27, 2018 660 should be 660 N=INT(RND*6+1) Hmmm copying PDF and debugging and you get cross eyed Quote Link to comment Share on other sites More sharing options...
oddemann Posted February 28, 2018 Author Share Posted February 28, 2018 Raw copy of the rest of the book!I have not been able to clean and debug. But if anyone wants to help og have fun, then copy else do not!For I think if you = 1 or X programs, step to the one you like.Go have fun!until next time!Gosub later when I have time! I will clean and put it all in post on top.I will return later to fix it! Busy day! Program 6-3. Buying Items - TI-99/4A 100 CALL CLEAR 110 PRINT TAB(6);"MATH COMPETENCY" 120 CALL CHAR(136,"080402FF020408") 130 PRINT :::TAB(7);"BUYING ITEMS" 140 CALL COLOR(14,9,16) 150 PRINT •••••::::: 160 DIM I$(3,*5),I(3,5,2),N$(6),J(5),H$(3),S$(4) 170 FOR C=l TO 6 180 READ N$(C) 190 NEXT C 200 FOR A=l TO 3 210 FOR C=l TO 5 220 READ I$(A,C),I(A,C,1),I(A,C,2) 230 NEXT C 240 NEXT A 250 DATA ANGIE,CINDY,CHERY,RICKY,BOBBY,RANDY,PENCIL,8,15 260 DATA ERASER,2,10,NOTEBOOK,35,99,RULER,29,49 270 DATA PAPER,59,90,DOLL,249,599,BALL,49,89,TRUCK,100,150 280 DATA GAME,270,500,MODEL,300,700,CANDY,20,50 290 DATA MEAT,123,425,FRUIT,24,50,CHIPS,100,257,BR EAD,100,179 300 H$(1)="PENCIL AND ERASER" 310 H$(2)="BALL AND TRUCK" 320 H$(3)="CANDY AND FRUIT" 330 GOTO 550 340 PRINT TAB(15);"PRESS <ENTER>"; 350 CALL KEY(0,K,S) 360 IF K<>13 THEN 350 370 RETURN 380 CALL SOUND(100,330,2) 390 CALL SOUND(150,262,2) 400 RETURN 410 CALL SOUND(100,262,2) 420 CALL SOUND(100,330,2) 430 CALL SOUND(100,392,2) 440 CALL SOUND(200,523,2) 450 RETURN 460 P$=STR$(P) 470 IF LEN(P$)>1 THEN 490 480 P$="0"&P$ 490 IF LEN(P$)>2 THEN 510 500 P$=" "&P$ 510 PR$=SEG$(P$,LEN(P$)-1,2) 520 PL$=SEG$(P$,l,LEN(P$)-2) 530 P$="$"&PL$&"."&PR$ 540 RETURN 550 RANDOMIZE 560 A=INT(RND*3+1) 570 TP=0 580 CALL CLEAR 590 PRINT "GIVEN THIS PRICE LIST:":: 600 FOR C=l TO 5 610 D=I(A,C,2)-I(A,C,1) 620 P=I(A,C,1)+INT(RND*D+1) 630 GOSUB 460 640 TP=TP+P 650 PRINT TAB(6);I$(A,C);TAB(15);P$ 660 NEXT C 670 R=INT(RND*13+4) 680 CALL COLOR(13,R,R) 690 CALL HCHAR(18,6,128,18) 700 CALL VCHAR(19,6,128,5) 710 CALL VCHAR(19,23,128,5) 720 CALL HCHAR(24,6,128,18) 730 F=INT(RND*2+1) 740 IF F=2 THEN 790 750 PRINT ::"HOW MUCH WILL IT COST" 760 PRINT "TO BUY ALL THE ITEMS" 770 PRINT "ON THE LIST?" 780 GOTO 830 790 N=INT(RND*6+1) 800 PRINT ::N$(N);" WANTS TO BUY" 810 PRINT "EVERYTHING ON THE LIST." 820 PRINT "WHAT WILL THE TOTAL COST BE?" 830 INPUT "$":X 840 IF ABS(X-TP/100)<.001 THEN 920 850 GOSUB 380 860 PRINT :"ADD ALL FIVE NUMBERS." 870 P=TP 880 GOSUB 460 890 PRINT "THE TOTAL IS ";P$::: 900 GOSUB 340 910 GOTO 550 920 GOSUB 410 930 CALL HCHAR(20,1,32,128) 940 IF F=2 THEN 970 950 PRINT "IF YOU COULD ONLY SPEND" 960 GOTO 980 970 PRINT "IF ";N$(N);" COULD ONLY SPEND" 980 IF A<>1 THEN 1010 990 M=INT(RND*5+25) 1000 GOTO 1050 1010 IF A<>2 THEN 1040 1020 M=INT(RND*36+239) 1030 GOTO 1050 1040 M=INT(RND*18+100) 1050 P=M 1060 GOSUB 460 1070 PRINT P$;", WHICH OF THESE PAIRS" 1080 PRINT "OF ITEMS COULD "; 1090 IF F<>1 THEN 1120 1100 PRINT "YOU BUY?":: 1110 GOTO 1160 1120 IF N>3 THEN 1150 1130 PRINT "SHE BUY?":: 1140 GOTO 1160 1150 PRINT "HE BUY?":: 1160 R=INT(RND*4+1) 1170 FOR V=l TO 4 1180 IF V=R THEN 1280 1190 X=INT(RND*2+4) 1200 S$(V)=I$(A,X) 1210 X=INT(RND*3+1) 1220 S$(V)=S$(V)&" AND "&I$(A,X) 1230 IF V=l THEN 1290 1240 FOR Vl=l TO V-l 1250 IF S$(V1)=S$(V)THEN 1190 1260 NEXT VI 1270 GOTO 1290 1280 S$(V)=H$(A) 1290 PRINT TAB(3);CHR$(64+V);" "&S$(V) 1300 NEXT V 1310 CALL SOUND(150,1397,2) 1320 CALL KEY(0,K,S) 1330 IF (K<65)+(K>68)THEN 1320 1340 CALL HCHAR(K-45,4,42) 1350 IF K<>64+R THEN 1410 1360 GOSUB 410 1370 PRINT :"TRY AGAIN? (Y/N)"r 1380 CALL KEY(0,K,S) 1390 IF K=89 THEN 550 1400 IF K=78 THEN 1450 ELSE 1380 1410 GOSUB 380 1420 CALL HCHAR(19+R,3,136) 1430 PRINT : "THE TOTAL OF THE TV70 ITEMS MUST BE L ESS THAN ";P$ 1440 GOTO 1370 1450 CALL CLEAR 1460 END Program 6-6. Sales Tax - TI-99/4A 110 FOR 1=1 TO 4 120 READ T$(I) 130 FOR J=l TO 4 140 READ P$(I,J),P(I,J) 150 NEXT J 160 NEXT I 170 DATA HARDWARE,HAMMER,1500,PLIERS,300,SAW,600,N AILS,100 180 DATA CLOTHES,BELT,400,TIE,500,SHIRT,600,PANTS, 2000 190 DATA TOYS,BALL,100,CAR,200,GAME,500,DOLL,600 200 DATA SUPPLIES,PAPER,400,CLIPS,100,PENCILS,100, ENVELOPES,200 210 CALL CLEAR 220 A=0 230 PRINT "SALES TAX ON THE FOLLOWING" 235 RANDOMIZE 240 T=INT(4*RND+2) 250 PRINT "ITEMS IS";T;"PER CENT, OR" 260 PRINT "$.0";STR$(T);" FOR EACH DOLLAR SPENT." 270 PRINT "WHAT IS THE TOTAL COST?" 280 PRINT 290 I=INT(4*RND+1) 300 PRINT TAB(;T$(I) 310 PRINT 320 FOR J=l TO 4 330 C=P(I,J)+25*(INT(4*RND)) 340 GOSUB 660 350 PRINT P$(I,J),C$ 360 A=A+C 370 NEXT J 380 PRINT "########################" 390 PRINT 400 INPUT "TOTAL COST = $ ":B 410 PRINT 420 TX=1+T/100 430 TA=INT(((A/100)*TX+.005)*100)/100 440 IF ABS(B-TA)<.01 THEN 580 450 C=A 460 GOSUB 660 470 PRINT "ADD COSTS FOR TOTAL." 480 PRINT "PRICE OF ITEMS = "?C$ 490 PRINT "MULTIPLY BY ";T/100?" FOR TAX," 500 PRINT "THEN ADD." 510 PRINT 520 C=TA*100 530 GOSUB 660 540 PRINT "TOTAL COST = ";C$ 550 PRINT 560 INPUT "PRESS <ENTER>":E$ 570 GOTO 210 580 PRINT "CORRECT 1" 590 PRINT 600 PRINT "CHOOSE: 1 TRY AGAIN" 610 PRINT TAB(9);"2 END" 620 CALL KEY(0,K,S) 630 IF K=49 THEN 210 640 IF K=50 THEN 700 650 GOTO 620 660 C$=STR$(C) 670 L=LEN(C$) 680 C$="$"&SEG$(C?,1,L-2)&"."&SEG$(C$,L-1,2) 690 RETURN 700 CALL CLEAR 710 END Program 6-9. Earning Money - TI-99/4A 100 CALL CLEAR 110 PRINT TAB(6);"MATH COMPETENCY" /m 120 PRINT :::TAB(7);"EARNING MONEY" 130 PRINT :::::::::: **> 140 DIM N$(5),J$(5),T$(5) 150 FOR 1=0 TO 5 /** 160 READ N$(I),J$(I),T$(I) 170 NEXT I ^ 180 DATA SAM,DOING ODD JOBS,JOHN,JOE,MOWING LAWNS,ANDY,BOB,TENDING CHILDREN,MARK,ANN 190 DATA RUNNING ERRANDS,LENA,SUE,DOING HOUSEWORK, ^ AURA,KAY,DELIVERING ADS,DAWN 200 GOTO 370 210 PRINT :TAB(15);"PRESS <ENTER>"; 220 CALL KEY(0,K,S) 230 IF K<>13 THEN 220 240 RETURN 250 CALL SOUND(100,330,2) 260 CALL SOUND(150,262,2) 270 RETURN 280 CALL SOUND(100,262,2) 290 CALL SOUND(100, 330, 2) 300 CALL SOUND(100,392,2) 310 CALL SOUND(200,523,2) 320 RETURN 330 P=100+25*INT(RND*10) 340 P$=STR$(P) 350 P$="$"&SEG$(P$,1,LEN(P$)-2)&"."&SEG$(P$,LEN(P$)"I ,2 ) /3^s 360 RETURN 370 CALL CLEAR 380 RANDOMIZE 390 N=INT(RND*6) 400 H=8+INT(RND*11) 410 GOSUB 330 420 PRINT N$(N);" WORKS";H;"HOURS PER WEEK." 430 IF N<3 THEN 460 440 PRINT : "SHE EARNS "; 450 GOTO 470 460 PRINT :"HE EARNS "; 470 PRINT P$;" PER HOUR." 480 IF N<3 THEN 510 490 PRINT :"HOW MUCH DOES SHE EARN" 500 GOTO 520 510 PRINT :"HOW MUCH DOES HE EARN" 520 PRINT :"IN A WEEK?":: 530 INPUT "$":D ^ 540 D1=P*H/100 550 IF ABS(D-Dl)>.001 THEN 610 560 GOSUB 280 570 PRINT ::"TRY AGAIN? (Y/N)" 580 CALL KEY(0,K,S) 590 IF K=89 THEN 370 600 IF K=78 THEN 680 ELSE 580 610 GOSUB 250 620 PRINT :"MULTIPLY";H;"HOURS BY ";P$::"PER HOUR, n 630 P=H*P 640 GOSUB 340 650 PRINT :"THE ANSWER IS ";P$ 660 GOSUB 210 670 GOTO 370 680 CALL CLEAR 690 RANDOMIZE 700 N=INT(RND*6) 710 H=INT(RND*ll)+8 720 GOSUB 330 730 PRINT N$(N);" EARNS ";P$;" PER HOUR." 740 IF N<3 THEN 770 750 PRINT :"SHE WORKS"; 760 GOTO 780 770 PRINT :"HE WORKS"; 780 PRINT H;"HOURS PER WEEK." 790 IF N<3 THEN 820 800 PRINT :"HOW MUCH WILL SHE EARN IN" 810 GOTO 830 820 PRINT :"HOW MUCH WILL HE EARN IN" 830 W=INT(RND*19)+2 840 PRINT :W;"WEEKS?":: 850 INPUT "$":D 860 Dl=P*H*W/100 870 IF ABS(D-Dl)>.001 THEN 930 880 GOSUB 280 890 PRINT ::"TRY AGAIN? (Y/N)" 900 CALL KEY(0,K,S) 910 IF K=89 THEN 680 920 IF K=78 THEN 1030 ELSE 900 930 GOSUB 250 940 PRINT :"MULTIPLY";H;"HOURS BY" 950 PRINT $;" PER HOUR." 960 PRINT :"THEN MULTIPLY BY";W;"WEEKS." 970 PRINT :"THE ANSWER IS "; 980 P=H*P*W 990 GOSUB 340 1000 PRINT P$::: 1010 GOSUB 210 1020 GOTO 680 1030 CALL CLEAR 1040 J=INT(RND*6) 1050 T=INT(RND*6) 1060 GOSUB 330 1070 W=INT(RND*+2 1080 PRINT T$(T);" EARNED ";P$;" LAST WEEK" 1090 PRINT :J$(J);"." 1100 IF T<3 THEN 1130 1110 PRINT :"IF SHE EARNED THIS AMOUNT" 1120 GOTO 1140 1130 PRINT :"IF HE EARNED THIS AMOUNT" 1140 PRINT :"EVERY WEEK, WHAT WOULD THE" 1150 PRINT :"TOTAL INCOME BE FOR" 1160 PRINT :W;"WEEKS?": : 1170 INPUT "$":D 1180 D1=P*W/100 1190 IF ABS(D-Dl)>.001 THEN 1250 1200 GOSUB 280 1210 PRINT ::"TRY AGAIN? (Y/N)"; 1220 CALL KEY(0,K,S) 1230 IF K=89 THEN 1030 1240 IF K=78 THEN 1330 ELSE 1220 1250 GOSUB 250 1260 PRINT :"MULTIPLY ";P$;" PER WEEK" 1270 PRINT :"BY";W;"WEEKS." 1280 P=P*W 1290 GOSUB 340 1300 PRINT 1310 GOSUB 210 1320 GOTO 1030 1330 CALL CLEAR 1340 END Program 6-12. Weekly Expenses - TI-99/4A 20 DIM A$(3,5),N$(6),P$(3) ^ 30 FOR A=l TO 3 ^ 40 READ N$(A),N$(A+3)fP$(A) 50 FOR B=l TO 5 ^ 60 READ A$(A,B) 70 NEXT B m. 80 NEXT A 90 DATA LENA,ANDY,IS GOING TO ^ 100 DATA CAMP BEAVER,CAMP FEE,HORSE RIDING,TENNIS, _ CRAFTS 110 DATA AURA,BILL,WILL ATTEND ^ 120 DATA SPORTS CLINIC,TUITION,UNIFORM FEE,EQUIPME NT FEE,SPECIAL EVENT 130 DATA MARY,JOHN,WILL STAY AT 140 DATA LOGAN CANYON,CAMP FEE,T-SHIRTS,ACTIVITY F EE,SUPPLIES 150 CALL CLEAR 155 RANDOMIZE 160 I=INT(3*RND+1) 170 PRINT "HERE ARE THE EXPENSES FOR" 180 PRINT "ONE WEEK AT ";A$(1,1); "." 190 PRINT 200 C=INT(5*RND+l)*1000+4000 210 GOSUB 680 220 PRINT A$(I,2),C$ 230 T=C 240 C=INT(12*RND+l)*25+275 250 GOSUB 680 260 PRINT A$(I,3),C$ 270 T=T+C 280 C=INT(8*RND+1)*50+150 290 GOSUB 680 300 PRINT A$(I,4)/C$ 310 T=T+C 320 C=INT(5*RND+l)*50+50 330 GOSUB 680 340 PRINT A$(I,5),C$ 350 T=T+C 360 PRINT 370 PRINT "TOTAL EXPENSES FOR ONE WEEK" 380 INPUT "$":A 390 PRINT 400 IF A=T/100 THEN 440 410 PRINT "ADD THE NUMBERS TO GET" 420 PRINT "TOTAL ";T/100 430 PRINT 440 W=INT(7*RND+2) 450 PRINT N$(INT(6*RND+1));" ";P$(INT(3*RND+1)) 460 PRINT A$(l,l)y" FOR";W;"WEEKS." 470 PRINT "WHAT WILL IT COST?" 480 INPUT "$":A 490 PRINT 500 IF A=W*T/100 THEN 610 510 PRINT "MULTIPLY TOTAL EXPENSES" 520 PRINT "PER V7EEK TIMES" ;W? "WEEKS : " 530 C=T*W 540 GOSUB 680 550 PRINT "$";T/100;"*";W;"= ";C$ 560 PRINT 570 PRINT "PRESS ENTER." 580 CALL KEY(0,K,S) 590 IF K=13 THEN 150 600 GOTO 580 ^ 610 PRINT "CORRECT I" 620 PRINT tm 630 PRINT "PRESS 1 ANOTHER PROBLEM" ^ 640 PRINT TAB(7b"2 END PROGRAM" 650 CALL KEY(0fK,S) im 660 IF K=49 THEN 150 670 IF K=50 THEN 730 ELSE 650 ^ 680 M$=STR$(C) 690 IF LEN(M$)>3 THEN 700 /m~ 695 M$=" "&M$ _ 700 L=LEN(M$) 710 C$="$"&SEG$(M$,1,L-2)&,,."&SEG$(M$,L-1,2) a* 720 RETURN 730 CALL CLEAR ^V 740 END Program 6-15. Saving Money - TI-99/4A 120 CALL CLEAR 130 FOR C=l TO 6 140 READ N$(C) 150 NEXT C 160 FOR C=l TO 3 170 READ A$(C),B(C),M(C),F(C) 180 NEXT C 190 DATA SALLY,HEIDI,NANCY,BRENT,DAVID,CHUCK 200 DATA BIKE,80,5,7,STEREO,90,5,14,COMPUTER,100,1 0,10 210 CALL CLEAR 215 RANDOMIZE 220 R6=INT(6*RND+1) 230 PRINT N$(R6);" WANTS TO BUY A" 240 R3=INT(3*RND+1) 250 PRINT A$(R3)y"." 260 T=B(R3)+M(R3)*INT(F(R3)*RND+1) 270 GOSUB 570 290 P$="HE" 300 IF R6>=4 THEN 320 m, 310 P$="SHE" 320 W=10*INT(4*RND+1) ^ 330 PRINT "IF ";P$?" SAVES FOR";W;"WEEKS," 340 PRINT "HOW MUCH WILL ";N$(R6)?" NEED" ***• 350 PRINT "TO SAVE EACH WEEK?" ^ 360 PRINT 370 S=(T/W)/100 *» 380 INPUT ANS 390 IF ABS(ANS-S)<.01 THEN 470 /*> 400 PRINT "TOTAL COST "?C$ 410 PRINT "DIVIDED BY"?W;"WEEKS =" ^ 420 GOSUB 560 430 PRINT C$ ^ 440 PRINT ^ 450 INPUT "PRESS <ENTER>":E$ 460 GOTO 210 ,4ft, 470 PRINT 480 PRINT "CORRECT I" ^ 490 PRINT 500 PRINT "ANOTHER PROBLEM?" ^ 510 PRINT "(Y/N)" ^ 520 CALL KEY(0,K,S) 530 IF K=89 THEN 210 ^ 540 IF K=78 THEN 610 550 GOTO 520 ^s 560 T=S 570 T=INT(100*T) ^ 580 T$=STR$(T) _ 590 C$="$,,&SEG$(T$,1,LEN(T$)-2)&,,."&SEG$(T$,LEN(T$ ^ 600 RETURN 610 END Program 7-3. Divison - TI-99/4A 110 CALL CHAR(37,"804020202020408") 120 CALL CHAR(38,"00000000000000FF") 130 CALL CLEAR 140 PRINT "DIVISION WITH REMAINDER":::: 150 PRINT TAB(ll);"QUOTIENT" 160 PRINT TAB(10);"&&&&&&&&&&" 170 PRINT " DIVISOR %DIVIDEND":::: 180 INPUT "DIVISOR: ":I 190 IF I<>0 THEN 220 200 PRINT :"SORRY, DIVISOR CANNOT = 0":: 210 GOTO 180 220 INPUT "DIVIDEND: ":D 230 Q=INT(D/I) 240 R=D-Q*I 250 PRINT : "QUOTIENT =";Q;" R";R 260 PRINT :::"CHOOSE:" 270 PRINT " 1 ANOTHER PROBLEM" 280 PRINT " 2 END PROGRAM" 290 CALL KEY(0,K,S) 300 IF K=49 THEN 130 310 IF K<>50 THEN 290 320 CALL CLEAR 330 END Program 7-6. Find All Factors - TI-99/4A f^$\ 110 CALL CLEAR 120 PRINT "FINDING ALL FACTORS" **> 130 PRINT 140 PRINT "ENTER NUMBER TO BE" ^ 150 INPUT "FACTORED: ":N /_ 160 IF N>1 THEN 190 170 PRINT "ENTER NUMBER > 1" 180 GOTO 130 190 PRINT :"FACTORS OF";N;"ARE" 200 PRINT N? 210 B=INT(N/2+1) 220 FOR C=2 TO B 230 IF N/C<>INT(N/C)THEN 280 240 B=N/C 250 PRINT B; 260 IF B=l THEN 300 270 IF B=2 THEN 290 280 NEXT C 290 PRINT " 1" 300 PRINT 310 PRINT "CHOOSE:" 320 PRINT " 1 ANOTHER PROBLEM" 330 PRINT " 2 END PROGRAM" 340 CALL KEY(0,K,S) 350 IF K=49 THEN 110 360 IF K<>50 THEN 340 370 CALL CLEAR 380 END Program 7-9. Prime Factors - TI-99/4A 110 CALL CLEAR 120 PRINT "PRIME FACTORS OR" 130 PRINT "COMPLETE FACTORIZATION" 140 PRINT 150 PRINT "ENTER NUMBER TO BE" 160 INPUT "FACTORED: ":N 170 IF N>1 THEN 200 180 PRINT "NUMBER MUST BE > 1" 190 GOTO 140 200 PRINT 210 PRINT "THE PRIME FACTORS ARE:" 220 G=INT(N/2) 230 FOR 1=2 TO G 240 IF N/K>INT(N/I)THEN 290 250 N=N/I 260 G=N 270 PRINT I? 280 GOTO 230 290 NEXT I 300 IF N=l THEN 320 310 PRINT N 320 PRINT 330 PRINT 340 PRINT "CHOOSE:" 350 PRINT " 1 ANOTHER PROBLEM" 360 PRINT " 2 END PROGRAM" 370 CALL KEY(0,K,S) 380 IF K=49 THEN 110 390 IF K<>50 THEN 370 400 CALL CLEAR 410 END Program 7-12. Greatest Common Factor - TI-99/4A 110 CALL CLEAR 120 PRINT "GREATEST COMMON FACTOR" 130 PRINT "OF TWO NUMBERS" 140 PRINT 150 INPUT "FIRST NUMBER ":M 160 IF M>1 THEN 190 170 PRINT "ENTER NUMBER > 1" 180 GOTO 140 190 IF M<10000 THEN 220 200 PRINT "MUST BE < 10000" 210 GOTO 140 220 PRINT 230 INPUT "SECOND NUMBER ":N 240 IF N>1 THEN 270 250 PRINT "ENTER NUMBER > 1" 260 GOTO 220 270 IF N<10000 THEN 300 280 PRINT "MUST BE < 10000" 290 GOTO 220 300 PRINT 310 PRINT "GREATEST COMMON FACTOR =" 320 IF MON THEN 350 330 G=M 340 GOTO 470 350 IF M<N THEN 390 360 MM=M 370 M=N 380 N=MM 390 FOR 1=1 TO M 400 IF (M/I)<>INT(M/I)THEN 450 410 J=M/I 420 IF (N/J)<>INT(N/J)THEN 450 430 G=J 440 GOTO 470 450 NEXT I 460 G=l 470 PRINT G 480 PRINT 490 PRINT "CHOOSE:" 500 PRINT " 1 ANOTHER PROBLEM" 510 PRINT " 2 END PROGRAM" 520 CALL KEY(0,K,S) 530 IF K=49 THEN 110 540 IF K<>50 THEN 520 550 CALL CLEAR 560 END Program 7-15. Least Common Multiple - TI-99/4A 110 CALL CLEAR 120 PRINT "LEAST COMMON MULTIPLE" 130 PRINT "OF 2 OR 3 GIVEN NUMBERS" 140 PRINT 150 PRINT "HOW MANY NUMBERS —2 OR 3?" 160 CALL KEY(0,K,S) 170 IF K<50 THEN 160 180 IF K>51 THEN 160 190 PRINT K-48?" NUMBERS" 200 FOR C=1 TO K-48 210 PRINT 220 PRINT "NUMBER";C? 230 INPUT N(C) 240 IF N(C)>1 THEN 270 250 PRINT "NUMBER MUST BE > 1" 260 GOTO 210 270 IF N(C)<1000 THEN 300 280 PRINT "NUMBER MUST BE < 1000" 290 GOTO 210 300 NEXT C 310 IF K=51 THEN 460 320 IF N(1)<>N(2)THEN 350 330 L=N(1) 340 GOTO 690 350 IF N(1)<N(2)THEN 390 360 NN=N(1) 370 N(1)=N(2) 380 N(2)=NN 390 FOR C=1 TO N(1) 400 IF C*N(2)/N(1)<>INT(C*N(2)/N(1))THEN 430 410 L=C*N(2) 420 GOTO 690 430 NEXT C 440 L=N(1)*N(2) ^ 450 GOTO 690 460 SW=0 470 FOR C=1 TO 2 480 IF N(C)<=N(C+1)THEN 530 490 NN=N(C) 500 N(C)=N(C+1) 510 N(C+1)=NN 520 SW=1 ^ 530 NEXT C 540 IF SW=1 THEN 460 550 FOR C=l TO N(2) 560 F=C*N(3) 570 IF (F/N(1)=INT(F/N(1)))+(F/N(2)=INT(F/N(2)))<>-2 THEN 600 580 L=F 590 GOTO 690 600 NEXT C 610 M=N(2)*N(3) 620 FOR C=1 TO N(1) 630 F=C*M 640 IF F/N(1)<>INT(F/N(1))THEN 670 650 L=F 660 GOTO 690 670 NEXT C 680 L=M*N(1) 690 PRINT ::"LEAST COMMON MULTIPLE IS" 700 PRINT L 710 PRINT ::"CHOOSE:" 720 PRINT " 1 ANOTHER PROBLEM" 730 PRINT " 2 END PROGRAM" 740 CALL KEY(0,K,S) 750 IF K=49 THEN 110 760 IF K<>50 THEN 740 770 CALL CLEAR 780 END Program 7-18. Equivalent Fractions - TI-99/4A 110 CALL CLEAR 120 PRINT TAB(10);"A{5 SPACES}C" 130 PRINT TAB(10);"- = -" 140 PRINT TAB(10);"B{5 SPACES}D"::: 150 PRINT "WHICH IS THE UNKNOWN?" 160 PRINT "CHOOSE A, B, C, OR D."::: 170 CALL KEY(0,K,S) 180 IF (K<65)+(K>68)THEN 170 190 ON K-64 GOTO 200,310,450,560 200 INPUT "ENTER B = ":B 210 IF B<>0 THEN 240 220 PRINT "B CANNOT = 0":: 230 GOTO 200 240 INPUT "ENTER C = ":C 250 INPUT "ENTER D = ":D 260 IF D<>0 THEN 290 270 PRINT "D CANNOT = 0":: 280 GOTO 250 290 A=INT(100*(B*C/D+.005))/100 300 GOTO 690 310 INPUT "ENTER A = ":A 320 IF A<>0 THEN 350 330 PRINT "SORRY, A<>0":: 340 GOTO 310 350 INPUT "ENTER C = ":C 360 IF C<>0 THEN 390 370 PRINT "SORRY, C<>0":: 380 GOTO 350 390 INPUT "ENTER D = ":D 400 IF D<>0 THEN 430 410 PRINT "D CANNOT = 0":: 420 GOTO 390 430 B=INT(100*(A*D/C+.005))/l00 440 GOTO 690 450 INPUT "ENTER A = ":A 460 INPUT "ENTER B = ":B 470 IF B<>0 THEN 500 480 PRINT "B CANNOT = 0":: 490 GOTO 460 500 INPUT "ENTER D = ":D 510 IF D<>0 THEN 540 520 PRINT "D CANNOT = 0":: 530 GOTO 500 540 C=INT(100*(A*D/B+.005))/100 550 GOTO 690 560 INPUT "ENTER A = ":A 570 IF A<>0 THEN 600 580 PRINT "SORRY, A<>0":: 590 GOTO 560 600 INPUT "ENTER B = ":B ^ 610 IF B<>0 THEN 640 620 PRINT "B CANNOT = 0":: 630 GOTO 600 640 INPUT "ENTER C = ":C 650 IF C<>0 THEN 680 **s 660 PRINT "SORRY, C<>0":: 670 GOTO 640 ^ 680 D=INT(100*(B*C/A+.005))/l00 690 CALL CLEAR 700 PRINT TAB(7);A,C 710 PRINT TAB(7);" = " 720 PRINT TAB(7);B,D 730 PRINT :::"CHOOSE:" 740 PRINT " 1 ANOTHER PROBLEM" 750 PRINT " 2 END PROGRAM" 760 CALL KEY(0,K,S) 770 IF K=49 THEN 110 780 IF K<>50 THEN 760 790 CALL CLEAR 800 END Program 7-21. Simplifying Fractions - TI-99/4A 110 CALL CLEAR 120 PRINT "SIMPLIFYING FRACTIONS":::: 130 INPUT "NUMERATOR ={3 SPACES}":N 140 INPUT "DENOMINATOR = ":D 150 IF D<>0 THEN 180 ^ 160 PRINT "DENOMINATOR CANNOT = 0":: 170 GOTO 140 180 IF D>N THEN 210 190 LIM=D ^ 200 GOTO 220 210 LIM=N 220 S=—2 230 IF D/2<>INT(D/2)THEN 250 240 IF N/2=INT(N/2)THEN 260 250 S=-l 260 FOR C=LIM TO 2 STEP S 270 A=N/C 280 IF A<>INT(A)THEN 310 290 B=D/C 300 IF B=INT(B)THEN 340 310 NEXT C 320 PRINT ::N;"/";D;" CANNOT BE SIMPLIFIED" 330 GOTO 350 ^ 340 PRINT :N;"/";D;" = ";A;"/";B 350 PRINT :::"CHOOSE:" ^ 360 PRINT " 1 ANOTHER PROBLEM" 370 PRINT " 2 END PROGRAM" 380 CALL KEY(0,K,S) 390 IF K=49 THEN 110 400 IF K<>50 THEN 380 410 CALL CLEAR 420 END Program 7-24. Multiplying Fractions - TI-99/4A 110 CALL CLEAR 120 PRINT "MULTIPLYING FRACTIONS":::: 130 PRINT "HOW MANY FRACTIONS?"::: 140 CALL KEY(0,K,S) 150 IF (K<50)+(K>57)THEN 140 160 CALL HCHAR(21,23,K) 170 C=K-48 180 NT=1 190 DT=1 200 FOR I=1 TO C 210 PRINT "FRACTION";I 220 INPUT "{4 SPACES}NUMERATOR ={3 SPACES}":N(I) 230 NT=NT*N(I) 240 INPUT " DENOMINATOR = ":D(l) 250 IF D(I)<>0 THEN 280 260 PRINT '."DENOMINATOR CANNOT BE ZERO.":: 270 GOTO 240 280 DT=DT*D(I) 290 NEXT I 300 PRINT :::"** MULTIPLY **":: 310 FOR I=1 TO C 320 PRINT STR$(N(I));"/";STR$(D(I)) 330 NEXT I 340 PRINT " " 350 FOR I=1 TO C 360 A=NT/D(I) 370 IF A<>INT(A)THEN 420 380 B=DT/D(I) 390 IF B<>INT(B)THEN 420 400 NT=A 410 DT=B ms 420 NEXT I 430 SW=0 440 FOR 1=1 TO C-l 450 IF D(I)<=D(I+1)THEN 500 460 DD=D(I) 470 D(I)=D(I+1) 480 D(I+1)=DD 490 SW=1 500 NEXT I 510 IF SV7=1 THEN 430 520 L=D(C) 530 FOR I=L TO 2 STEP -1 540 A=NT/I 550 IF A<>INT(A)THEN 580 560 B=DT/I 570 IF B=INT(B)THEN 610 580 NEXT I 590 A=NT 600 B=DT 610 IF A>=B THEN 640 620 PRINT ::STR$(A);"/M;STR$(B) 630 GOTO 700 640 W=INT(A/B) 650 R=A-W*B 660 IF R<>0 THEN 690 670 PRINT W 680 GOTO 700 690 PRINT W;"{3 SPACES}";STR$(R);"/";STR$(B) 700 PRINT :::"CHOOSE:":" 1 ANOTHER PROBLEM" 710 PRINT " 2 END PROGRAM"; 720 CALL KEY(0,K,S) 730 IF K=49 THEN 110 740 IF K<>50 THEN 720 750 CALL CLEAR 760 END Program 7-27. Dividing Fractions - TI-99/4A 110 CALL CLEAR 120 PRINT "THE FIRST FRACTION IS" 130 PRINT "DIVIDED BY THE" 140 PRINT "SECOND FRACTION." ^ 150 PRINT ::TAB(10);"Nl/Dl" 160 PRINT TAB(9);n " ^ 170 PRINT TAB(10);"N2/D2"::: 180 INPUT "ENTER Nl = ":N1 ^ 190 INPUT "ENTER Dl = ":D1 200 IF D1<>0 THEN 230 ^ 210 PRINT :"DENOMINATOR CANNOT BE ZERO.":: ^ 220 GOTO 190 230 PRINT /*•, 240 INPUT "ENTER N2 = ":N2 250 IF N2<>0 THEN 280 ^ 260 PRINT "SORRY, CANNOT =0" 270 GOTO 230 ^ 280 INPUT "ENTER D2 = ":D2 ^ 290 IF D2<>0 THEN 320 300 PRINT :"DENOMINATOR CANNOT BE ZERO.":: ^ 310 GOTO 280 320 NT=N1*D2 ^ 330 DT=D1*N2 340 PRINT :::STR$(N1);"/";STR$(D1) ^ 350 PRINT " " ^ 360 PRINT STR$(N2)?"/";STR$(D2) 370 PRINT :::"EQUALS":: m^ 380 IF NT<DT THEN 410 390 L=DT ^ 400 GOTO 420 410 L=NT ** 420 FOR I=L TO 2 STEP -1 ^ 430 A=NT/I 440 IF A<>INT(A)THEN 470 ^ 450 B=DT/l 460 IF B=INT(B)THEN 500 <«v 470 NEXT I 480 A=NT 490 B=DT 500 IF A>=B THEN 530 510 PRINT ::STR$(A);"/";STR$(B) 520 GOTO 620 530 IF B<>1 THEN 560 540 PRINT ::A 550 GOTO 620 560 C=INT(A/B) 570 R=A-C*B 580 IF R=0 THEN 610 590 PRINT C;" ";STR$(R);"/";STR$(B) 600 GOTO 620 610 PRINT C 620 PRINT :::"CHOOSE:":" 1 ANOTHER PROBLEM" 630 PRINT " 2 END PROGRAM"; 640 CALL KEY(0,KfS) 650 IF K=49 THEN 110 660 IF K<>50 THEN 640 670 CALL CLEAR 680 END Program 7-30. Adding Fractions - TI-99/4A 110 CALL CLEAR 120 PRINT "** ADDING FRACTIONS **" ^ 130 PRINT :: ^'CHOOSE:" ^ 140 PRINT :"1 LIKE DENOMINATORS" ' 150 PRINT :"2 UNLIKE DENOMINATORS"::: ^ 160 CALL KEY(0,KfS) 170 IF K=50 THEN 410 ^ 180 IF K<>49 THEN 160 190 CALL CLEAR ^ 200 CH=sl ^ 210 PRINT "ADDING FRACTIONS WITH" 220 PRINT "LIKE DENOMINATORS" ^ 230 PRINT ::"H0W MANY FRACTIONS?" 240 CALL KEY(0,K,S) ^ 250 IF (K<50)+(K>57)THEN 240 260 CALL HCHAR(23,23,K) ^ 270 C=K-48 280 PRINT ::"WHAT IS THE DENOMINATOR?" ' 290 INPUT DT ^ 300 IF DT<>0 THEN 330 310 PRINT "DENOMINATOR CANNOT =0" ^ 320 GOTO 280 330 PRINT ::"ENTER THE NUMERATORS":: ** 340 NT=0 350 FOR 1=1 TO C ^ 360 INPUT N(I) ^ 370 NT=NT+N(I) 380 D(I)=DT ^ 390 NEXT I 400 GOTO 720 /»* 410 CALL CLEAR 420 PRINT "ADDING UP TO FIVE" ^ 430 PRINT "FRACTIONS WHICH MAY HAVE" 440 PRINT "UNLIKE DENOMINATORS" 450 PRINT ::"HOW MANY FRACTIONS?":: ^ 460 CALL KEY(0,K,S) 470 IF (K<50)+ (K>53)THEN 460 **> 480 CALL HCHAR(22,23,K) 490 C=K-48 ^ 500 NT=0 _ 510 DT=1 "* 520 FOR 1=1 TO C ^ 530 PRINT "FRACTION";I 540 INPUT "{3 SPACES}NUMERATOR ={3 SPACES}":N(I) ^ 550 INPUT "{3 SPACES^DENOMINATOR = ":D(I) 560 IF D(I)<>0 THEN 590 "^ 570 PRINT :"DENOMINATOR CANOT BE ZERO":: 580 GOTO 550 590 IF 1=1 THEN 630 600 FOR J=l TO 1-1 610 IF D(I)=D(J)THEN 650 620 NEXT J 630 F=D(I) 640 GOTO 660 650 F=l 660 DT=DT*F 670 NEXT I 680 FOR 1=1 TO C 690 F=DT/D(I) 700 NT=NT+N(I)*F 710 NEXT I 720 CALL CLEAR 730 PRINT "** ADDING FRACTIONS **"::: 740 FOR 1=1 TO C 750 PRINT STR$(N(I));"/";STR$(D(I)) 760 NEXT I 770 PRINT " ":: 780 IF DT>NT THEN 810 790 L=DT 800 GOTO 820 810 L=NT 820 ST=-2 830 IF DT/2<>INT(DT/2)THEN 850 840 IF NT/2=INT(NT/2)THEN 860 850 ST=-1 860 FOR I=L TO 2 STEP ST 870 A=NT/I 880 IF A<>INT(A)THEN 910 890 B=DT/l 900 IF B=INT(B)THEN 940 910 NEXT I 920 A=NT 930 B=DT 940 PRINT STR$(A);"/";STR$(B) 950 IF A<B THEN 1020 960 W=INT(A/B) 970 R=A-W*B 980 IF R<>0 THEN 1010 990 PRINT "OR";W 1000 GOTO 1020 1010 PRINT :"OR ";W;" ";STR$(R);"/";STR$(B) 1020 PRINT ^"CHOOSE:":" 1 ANOTHER PROBLEM" 1030 PRINT " 2 END PROGRAM" 1040 CALL KEY(0,K,S) 1050 IF K=49 THEN 110 1060 IF K<>50 THEN 1040 1070 CALL CLEAR 1080 END Program 7-33. Simultaneous Equations - TI-99/4A sm\ 110 CALL CLEAR 120 PRINT "SOLVING SIMULTANEOUS" • 130 PRINT "EQUATIONS BY THE" ^ 140 PRINT "MATRIX INVERSION TECHNIQUE" 150 PRINT ::"SOLVE [A][X] = [B]" ^ 160 PRINT :"ENTER DEGREE OF THE MATRIX" 170 PRINT "OR NUMBER OF EQUATIONS":: ^ 180 INPUT "N = ":N 190 IF N<10 THEN 220 ^ 200 PRINT :"N MUST BE < 10":: ^ 210 GOTO 180 220 IF N>1 THEN 250 ^ 230 PRINT :"1<N<10{3 SPACES}TRY AGAIN":: 240 GOTO 180 "^ 250 PRINT ::"THE COEFFICIENTS OF X" 260 PRINT "ARE THE 'A' MATRIX." ^ 270 PRINT :"INPUT THE VALUES ROW BY ROW:" 280 PRINT :"A(1,1),A(1,2),A(1,3),..." 290 PRINT "A(2,1),A(2,2),A(2,3), ..." ^ 300 PRINT ". ": ". ": ". " 310 PRINT "A(N,1),A(N,2),...,A(N,N)"::: ^ 320 FOR 1=1 TO N 330 FOR J=l TO N ^ 340 INPUT "A("&STR$(I)&","S.STR$(J)&") = ":A(I,J) A 350 W(I,J)=A(I,J) **> 360 NEXT J ^ 370 PRINT 380 INPUT "B("&STR$(I)&") = ":B(I) ^ 390 PRINT :: 400 NEXT I ^ 410 PRINT ::"—SOLVING—":: 420 REM INVERT MATRIX A ^ 430 FOR C=l TO N _ 440 IF W(C,C)<>0 THEN 460 450 GOSUB 710 ^ 460 W(C,C)=1/W(C,C) 470 FOR D=l TO N ^ 480 IF (D-C)=0 THEN 540 490 W(D,C)=W(D,C)*W(C,C) ^ 500 FOR E=l TO N 510 IF (E-C)=0 THEN 530 ^ 520 W(D,E)=W(D,E)-W(D,C)*W(C,E) ^ 530 NEXT E 540 NEXT D <^ 550 FOR E=l TO N 560 IF (E-C)=0 THEN 580 ** 570 W(C,E)=-W(C,C)*W(C,E) 580 NEXT E 590 NEXT C 600 PRINT ::"SOLUTION VECTOR X:":: 610 FOR 1=1 TO N 620 X(I)=0 630 FOR J=l TO N 640 X(I)=X(I)+W(I,J)*B(J) 650 NEXT J 660 PRINT :"X("&STR$(I)&") = ";X(I) 670 NEXT I 680 PRINT :: 690 GOTO 870 700 REM SUB TO SWITCH ROWS 710 FOR F=C+1 TO N 720 IF W(F,C)=0 THEN 820 730 FOR E=l TO N 740 DW=W(C,E) 750 W(C,E)=W(F,E) 760 W(F,E)=DW 770 NEXT E 780 DB=B(C) 790 B(C)=B(F) 800 B(F)=DB 810 GOTO 860 820 NEXT F 830 PRINT "SORRY, DETERMINANT=0." 840 PRINT "NO UNIQUE SOLUTION." 850 GOTO 870 860 RETURN 870 PRINT :"PRESS 1 FOR ANOTHER PROBLEM" 880 PRINT TAB(7);"2 TO END PROGRAM" 890 CALL KEY(0,K,S) 900 IF K=49 THEN 110 910 IF K<>50 THEN 890 920 CALL CLEAR 930 END Program 8-3. Bubble Sort - TI-99/4A 110 DIM A(50) ^ 120 FOR 1=1 TO 50 130 RANDOMIZE ^ 140 A(I)=INT(RND*100+1) _ 150 PRINT A(I); 160 NEXT I ^ 170 PRINT :: 200 LIM=49 /^\ 210 SW=0 220 FOR 1=1 TO LIM ^ 230 IF A(I)<=A(I+1)THEN 290 _ 240 AA=A(I) ^ 250 A(I)=A(I+1) ~ 260 A(I+1)=AA 270 SW=1 /m> 280 LIM=I 290 NEXT I ^ 300 IF SW=1 THEN 210 500 FOR 1=1 TO 50 /mh 510 PRINT A(I); 520 NEXT I 530 END Program 8-6. Shell Sort - TI-99/4A 110 DIM A(50) 120 FOR 1=1 TO 50 130 RANDOMIZE 140 A(I)=INT(RND*100+1) 150 PRINT A(I); 160 NEXT I 170 PRINT :: 4* 200 B=l 210 B=2*B ^ 220 IF B<=50 THEN 210 ^ 230 B=INT(B/2) ^ 240 IF B=0 THEN 500 ^ 250 FOR 1=1 TO 50-B 260 C=I *^ 270 D=C+B 280 IF A(C)<=A(D)THEN 340 ^ 290 AA=A(C) 300 A(C)=A(D) ""*> 310 A(D)=AA a 320 C=C-B 330 IF C>0 THEN 270 *** 340 NEXT I 350 GOTO 230 ^ 500 FOR 1=1 TO 50 510 PRINT A(I); ^ 520 NEXT I _ 530 END Program 8-9. Maximum and Minimum Sort - TI-99/4A 110 DIM A(50) 120 N=50 130 FOR 1=1 TO 50 140 RANDOMIZE 150 A(I)=INT(RND*100+1) 160 PRINT A(I); 170 NEXT I 180 PRINT : : 200 S=l 210 MN=A(S) 220 IMIN=S 230 MX=MN 240 IMAX=S 250 FOR I=S TO N 260 IF A(I)<=MX THEN 290 270 MX=A(I) 280 IMAX=I 290 IF A(I)>=MN THEN 320 300 MN=A(I) 310 IMIN=I 320 NEXT I 330 IF IMINON THEN 350 340 IMIN=IMAX 350 AA=A(N) 360 A(N)=A(IMAX) 370 A(IMAX)=AA 380 N=N-1 390 AA=A(S) 400 A(S)=A(IMIN) 410 A(IMIN)=AA m\ 420 S=S+1 430 IF N>S THEN 210 **\ 500 FOR 1=1 TO 50 510 PRINT A(I); 520 NEXT I 530 END Program 8-12. Quick Sort - TI-99/4A 110 CALL CLEAR 120 DIM A(50) 130 N=50 140 FOR 1=1 TO N 150 RANDOMIZE 160 A(I)=INT(RND*100)+1 170 PRINT A(I)? 180 NEXT I 190 PRINT 200 S(l)=l 210 S(2)=N 220 T=l 230 IF T=0 THEN 520 240 T=T-1 250 I=2*T 260 L=S(I+1) 270 M=S(l+2) 280 X=A(L) 290 J=L 300 K=M+1 310 K=K-1 320 IF K=J THEN 400 330 IF X<=A(K)THEN 310 340 A(J)=A(K) 350 J=J+1 360 IF K=J THEN 400 370 IF X>=A(J)THEN 350 380 A(K)=A(J) 390 GOTO 310 400 A(J)=X 410 IF M-J<2 THEN 460 420 I=2*T 430 S(l+l)=J+l 440 S(I+2)=M 450 T=T+1 460 IF K-L<2 THEN 230 470 I=2*T 480 S(I+1)=L 490 S(I+2)=K-1 500 T=T+1 510 GOTO 230 520 PRINT 530 FOR 1=1 TO N 540 PRINT A(I); 550 NEXT I 560 END Program 8-15. Test Scores - TI-99/4A 110 CALL CLEAR 120 DIM N$(17),S(2),P(17) ** 130 FOR 1=0 TO 17 140 READ N$(I),F$ ^ 150 PRINT :N$(I);", "?F$ 160 N$(l)=F$&" "&N$(I) ^ 170 P(I)=0 ^ 180 FOR J=0 TO 2 190 READ T(J) ^ 200 P(I)=P(I)+T(J) 210 S(J)=S(J)+T(J) ^ 220 PRINT T(J); 230 NEXT J 240 A=INT(P(I)/3+.5) 250 PRINT " ";P(I);A 260 V=V+A 270 L=L+3 280 IF L<21 THEN 300 290 GOSUB 730 300 NEXT I 310 FOR J=0 TO 2 320 S(J)=INT(S(J)/18+.5) 330 NEXT J 340 PRINT :"AVERAGES" 350 PRINT S(0);S(1);S(2);"{7 SPACES}";INT(V/18+.5) 360 M=16 370 W=0 380 FOR 1=0 TO M 390 IF P(I)>=P(I+1)THEN 480 400 D=P(I) 410 P(I)=P(I+1) 420 P(I+1)=D 430 W=l 440 M=I 450 D$=N$(I) 460 N$(l)=N$(l+l) 470 N$(I+1)=D$ 480 NEXT I 490 IF W=l THEN 370 500 GOSUB 730 510 FOR 1=0 TO 17 520 PRINT P(l);INT(P(I)/3+.5);N$(l) 530 NEXT I 540 GOTO 790 550 DATA ADAMS,BOB,91,82,71 560 DATA BROWN,ANDY,96,84,72 570 DATA CARSON,GRANT,94,79,67 580 DATA ELLIS,CINDY,82,88,65 590 DATA HANSEN,ANGIE,96,67,72 600 DATA HANSEN,KELLY,72,97,65 610 DATA JENSEN,ED,88,71,71 620 DATA JENSEN,LENA,71,97,78 630 DATA KENT,RICHARD,77,73,78 640 DATA LARSEN,JOHN,92,82,83 650 DATA MARTIN,CHERY,88,71,97 660 DATA NELSON,RANDY,80,72,99 670 DATA ROGERS,BRIAN,78,77,98 680 DATA SMITH,AURA,97,80,64 690 DATA SMITH,BILL,62,67,87 700 DATA SMITH,JIM,64,81,87 710 DATA TAYLOR,JENNY,77,61,64 720 DATA WHITE,LEWIS,94,65,94 730 L=0 ^ 740 PRINT :"PRESS <ENTER>"; 750 CALL KEY(0,K,ST) ** 760 IF K<>13 THEN 750 770 CALL CLEAR ^ 780 RETURN 790 END Program 9-5. Teeth Wisdom - TI-99/4A 110 CALL CLEAR 120 PRINT TAB(4)•"******************" 130 PRINT TAB(4);"*,,;TAB(21);"*" 140 PRINT TAB(4);"* TEETH WISDOM *" 150 PRINT TAB(4);"*,,;TAB(21);"*" 160 PRINT TAB(4);"******************":::::: : 170 PRINT : :: 180 FOR C=94 TO 157 190 CALL COLOR(2,13,l) 200 READ C$ 210 CALL CHAR(C,C$) 220 CALL COLOR(2,16,1) 230 NEXT C 240 DATA 0000001F1010101,000000FF 250 DATA 00000F1F3F7F7F7F,000083C7C7E7EFEF,0000E0F0F8FCFEFE,FFFFFFFFFFFFFFFFF,EFEFEFEFEFEFEFEF,0 ii ni i 260 DATA 70F8FCFCFEFEFEFF,FEF8C,0E1F3F3F7F7F7FFF,7F1F03,,,,,00000000000000F8,010101010101,FCFEFFFFFEFCF83 270 DATA 000000000000001F,3F7FFFFF7F3F1F0C,80808080808,,,0F1F1F1F1F1F0E,E0F8F8F8F8F8F,071F1F1F1F1F0F 280 DATA F0F8F8F8F8F87,1F3F3F3F3F3F1F,F0F8F8F8F8F8F,0F1F1F1F1F1F0F,F8FCFCFCFCFCF8,7FFFFFFFFFFF7F 290 DATA E0F0F0F0F0F0E,070F0F0F0F0F07,FEFFFFFFFFFFFE,0303030303030301,FFFFFFFFFFFFFFFF,C0C0C0C0C0C0C08,"" 300 DATA FFFFFCF0E0C08,FFFF7E181,FFFF3F0F070301,FFFEFEFCFCF8F8F8,FF7F7F3F3F1F1F1F,F0F0F0F0F0F0F0F 310 DATA 0F0F0F0F0F0F0F0F,E0E0E0E0C0C0808,0707070703030101,0000000000071FFF,0000031FFFFFFFFF,00FFFFFFFFFFFFFFFF 320 DATA 0000C0F8FFFFFFFF,000000000070F8FF,01070F1F3F3F7FFF,80E0F0F8FCFCFEFF,010103030307070F,8080C0C0C0E0E0F 330 DATA 0F0F1F1F1F3F3F3F,F0F0F8F8F8FCFCFC,3F7F7F7F7F7F7F7F7F,FCFEFEFEFEFEFEFE 340 FOR C=9 TO 13 350 CALL COLOR(C,16,10) 360 NEXT C 370 CALL COLOR(14,10,1) 380 CALL COLOR(15,10,1) 390 CALL COLOR(16,10,1) 400 CALL CLEAR 410 CALL COLOR(2,2,1) 420 PRINT "YOU WILL SEE A DIAGRAM OF" 430 PRINT :"THE TEETH WITH THE NAMES" 440 PRINT :"0F THE TEETH." ^ 450 A$=CHR$(128)&CHR$(129) 460 B$=CHR$(130)&CHR$(131) m^ 470 PRINT ::"WHEN YOU KNOW THE NAMES," 480 PRINT :"PRESS <ENTER>." ^ 490 D$=CHR$(132)&CHR$(133)&CHR$(134) 500 PRINT ::"THE LABELS WILL CLEAR AND" ^ 510 PRINT :"YOU WILL BE GIVEN A QUIZ.":::: ^ 520 FOR C=l TO 5 • 530 READ N$(C) m, 540 W$(C)=N$(C) 550 NEXT C ^ 560 DATA CENTRAL INCISORS,LATERAL INCISORS,CUSPIDS ,BICUSPIDS,MOLARS ^ 570 GOSUB 1160 A 580 CALL CLEAR ~ 590 PRINT TAB(; "\_CENTRAL INCISORS" ^ 600 PRINT TAB(5);CHR$(145)&CHR$(146)&CHR$(147)&CHR $(148)&CHR$(149) ^s 610 PRINT TAB(4);CHR$(150);"e*abe";CHR$(151);" LA TERAL INCISORS" ^ 620 PRINT " ";CHR$(150);"phcdcjs";CHR$(151) 630 PRINT " ";CHR$(152);"qrieeektu";CHR$(153);,,CUS ^ PIDS" ^ 640 PRINT " ";CHR$(154);"xyeeeeezt";CHR$(155);"BIC USPIDS" /^ 650 PRINT " ";CHR$(156);"|{,}e";CHR$(136)&CHR$(137 )&CHR$(138);"e{,}";CHR$(127)&CHR$(157) ^ 660 PRINT " e";A$;CHR$(139);" "?CHR$(140);B$;"e" ;"MOLARS" 670 PRINT " e";A$;CHR$(141);" ";CHR$(142);B$;"e" ^ 680 PRINT " ";D$;CHR$(143);n ";CHR$(144);D$ 690 PRINT " eee eee"::: A* 700 GOSUB 1160 710 CALL HCHAR(23,16,32,13) **> 720 CALL HCHAR(10,10,32,18) 730 CALL HCHAR(12,13,32,18) 740 CALL HCHAR(14,15,32,7) 750 CALL HCHAR(15,15,32,9) 760 CALL HCHAR(17,15,32,6) ^ 770 PRINT TAB(;"NAME THE TEETH":: 780 FOR C=l TO 5 ^. 790 RANDOMIZE 800 I=INT(5*RND+1) ^ 810 IF W$(I)="" THEN 800 820 PRINT TAB(9);C;W$(I) 830 A(I)=C ^ 840 W$(I)="" 850 NEXT C 860 FOR C=l TO 5 870 I=INT(5*RND+1) 880 IF A(I)=0 THEN 870 890 CALL KEY(0,K,S) 900 CALL COLOR(I+8,6,10) 910 CALL COLOR(I+8,16,10) 920 IF S<1 THEN 890 930 IF (K<49)+(K>53)THEN 890 940 CALL HCHAR(18+K-48,11,62) 950 IF K-48=A(I)THEN 1000 960 CALL SOUND(150,330,0) 970 CALL SOUND(150,262,0) 980 CALL VCHAR(19,11,32,5) 990 GOTO 890 1000 CALL SOUND(150,262,0) 1010 CALL SOUND(150,330,0) 1020 CALL SOUND(150,392,0) 1030 CALL SOUND(200,523,0) 1040 CALL VCHAR(19,11,32,5) 1050 A(I)=0 1060 NEXT C 1070 PRINT ::"TRY AGAIN? (Y/N)" 1080 CALL KEY(0,K,S) 1090 IF K=78 THEN 1200 1100 IF K<>89 THEN 1080 1110 FOR C=l TO 5 1120 W$(C)=N$(C) 1130 NEXT C 1140 GOTO 580 1150 STOP 1160 PRINT TAB(14);"PRESS <ENTER>" 1170 CALL KEY(0,K,S) 1180 IF K<>13 THEN 1170 1190 RETURN 1200 CALL CLEAR 1210 END Program 9-11. States and Capitals - TI-99/4A 100 GOTO 160 110 PRINT :::"PRESS <ENTER>"; 120 CALL KEY(0,K,S) 130 IF K<>13 THEN 120 140 CALL CLEAR 150 RETURN 160 CALL CLEAR 170 PRINT "** STATES AND CAPITALS **"::::: 180 PRINT "TYPE IN THE NAME OF THE" 190 PRINT "CAPITAL AS THE STATE NAME" 200 PRINT "APPEARS." 210 PRINT :"CITIES MUST BE SPELLED":"CORRECTLY TO BE COUNTED":"AS CORRECT." 220 PRINT :"PRESS LEFT ARROW TO ERASE.":: 230 DIM S$(49),C$(49) 240 FOR 1=0 TO 49 250 READ S$(l),C$(l) 260 NEXT I 270 DATA ALABAMA,MONTGOMERY,ALASKA,JUNEAU,ARIZONA,PHOENIX,ARKANSAS,LITTLE ROCK,CALIFORNIA,SACRAMENTO,COLORADO 280 DATA DENVER,CONNECTICUT,HARTFORD,DELAWARE,DOVER,FLORIDA,TALLAHASSEE,GEORGIA,ATLANTA,HAWAII,HONOLULU,IDAHO 290 DATA BOISE,ILLINOIS,SPRINGFIELD,INDIANA,INDIANAPOLIS,IOWA,DES MOINES,KANSAS,TOPEKA,KENTUCKY,FRANKFORT 300 DATA LOUISIANA,BATON ROUGE,MAINE,AUGUSTA,MARYLAND,ANNAPOLIS,MASSACHUSETTS,BOSTON,MICHIGAN,LANSING 310 DATA MINNESOTA,ST. PAUL,MISSISSIPPI,JACKSON,MISSOURI,JEFFERSON CITY,MONTANA,HELENA,NEBRASKA,LINCOLN 320 DATA NEVADA,CARSON CITY,NEW HAMPSHIRE,CONCORD,NEW JERSEY,TRENTON,NEW MEXICO,SANTA FE,NEW YORK,ALBANY 330 DATA NORTH CAROLINA,RALEIGH,NORTH DAKOTA,BISMARCK,OHIO,COLUMBUS,OKLAHOMA,OKLAHOMA CITY,OREGON,SALEM 340 DATA PENNSYLVANIA,HARRISBURG,RHODE ISLAND,PROVIDENCE,SOUTH CAROLINA,COLUMBIA,SOUTH DAKOTA,PIERRE 350 DATA TENNESSEE,NASHVILLE,TEXAS,AUSTIN,UTAH,SALT LAKE CITY,VERMONT,MONTPELIER,VIRGINIA,RICHMOND 360 DATA WASHINGTON,OLYMPIA,WEST VIRGINIA,CHARLESTON,WISCONSIN,MADISON,WYOMING,CHEYENNE 370 G=0 380 P=19 390 GOSUB 110 400 FOR N=l TO 50 410 CALL CLEAR 420 F=0 430 RANDOMIZE 440 R=INT(50*RND) 450 IF S$(R)="" THEN 440 460 PRINT N 470 PRINT ::::"STATE: ";S$(R) 480 PRINT ::"CAPITAL: "::::: 490 B$="" 500 G=G+1 510 CALL SOUND(100,1497,2) 520 FOR 1=1 TO 20 530 CALL KEY(0,K,S) 540 IF K=13 THEN 670 550 IF S<1 THEN 530 560 IF K<>8 THEN 640 570 1=1-1 580 IF I>0 THEN 610 590 1=1 600 GOTO 530 610 B$=SEG$(B$,1,LEN(B$)-1) 620 CALL HCHAR(P,11+1,32) 630 GOTO 530 640 CALL HCHAR(P,11+I,K) 650 B$=B$&CHR$(K) 660 NEXT I 670 IF B$=C$(R)THEN 780 680 CALL SOUND(100,330,4) 690 CALL SOUND(100,262,4) 700 CALL HCHAR(P,12,32,20) 710 F=F+1 720 IF F=l THEN 490 730 FOR 1=1 TO LEN(C$(R)) 740 CALL HCHAR(P,11+I,ASC(SEG$(C$(R),I,1))) 750 NEXT I 760 GOSUB 110 770 GOTO 410 780 PRINT "CORRECT I" 790 CALL SOUND(100,262,2) 800 CALL SOUND(100,330,2) 810 CALL SOUND(100,392,2) 820 CALL SOUND(150,523,2) 830 S$(R)="" 840 NEXT N 850 CALL CLEAR 860 PRINT "YOU ANSWERED ALL 50." 870 PRINT ::::"NUMBER OF GUESSES: ";G::::: 880 END Program 9-14. South America - TI-99/4A 110 DIM S$(11),C$(11) 120 CALL CLEAR ^ 130 PRINT TAB(4);"** SOUTH AMERICA **" ^ 140 PRINT ::"MATCH THE COUNTRY WITH THE"::"CAPITAL CITY."::"PRESS THE CORRECT LETTER."::::: Ah 150 FOR 1=0 TO 11 160 READ S$(I),C$(I) ^N 170 NEXT I 180 DATA COLOMBIA,BOGOTA,BRAZIL,BRASILIA,ARGENTINA ^ ,BUENOS AIRES,VENEZUELA,CARACAS,FRENCH GUIANA, ^ CAYENNE 190 DATA GUYANA,GEORGETOWN,PERU,LIMA,URUGUAY,MONTE VIDEO,SURINAME,PARAMARIBO,ECUADOR,QUITO 200 DATA CHILE,SANTIAGO,BOLIVIA,SUCRE 210 PRINT ::"PRESS ANY KEY TO START." 220 CALL KEY(0,K,S) m 230 IF S<1 THEN 220 ^ 240 SC=0 m 250 FOR T=l TO 12 ^ 260 CALL CLEAR 270 RANDOMIZE Ah 280 R=INT(12*RND) 290 IF S$(R) = "" THEN 280 "^ 300 FOR 1=0 TO 11 310 PRINT TAB(4);CHR$(65+I);" ";C$(l) ^ 320 NEXT I ^ 330 PRINT ::S$(R);" ???" 340 CALL KEY(0,K,S) m. 350 IF (K<65)+(K>76)THEN 340 360 CALL HCHAR(23,26,K) Ah 370 IF K-65=R THEN 400 380 PRINT :"THE CAPITAL IS "?C$(R) m< 390 GOTO 420 400 PRINT :"CORRECT I" ^ 410 SC=SC+1 ^ 420 S$(R)="" 430 PRINT :::"PRESS <ENTER>"; Ah 440 CALL KEY(0,K,S) 450 IF K<>13 THEN 440 ^ 460 NEXT T 470 CALL CLEAR 480 PRINT "SOUTH AMERICA"::::"YOUR SCORE WAS";SC:: ^ "OUT OF 12 COUNTRIES."::: 490 END Program 9-17. Countries - TI-99/4A 110 DIM A$(7),C$(50),C(50) 120 CALL CLEAR 130 PRINT "YOU V7ILL BE GIVEN THE":: "NAME OF A COUN TRY. " 140 PRINT :"WHERE IS IT LOCATED?" 150 PRINT ::"SEVEN CONTINENTS ARE LISTED."::"CHOOS E THE RIGHT NUMBER." 160 FOR 1=0 TO 50 170 READ C$(I),C(I) 180 NEXT I 190 DATA FRANCE,3,BRAZIL,2,LIBYA,5,UNITED STATES,1,CANADA,1,MEXICO,1,PERU,2,NORWAY,3,U.S.S.R.,4,CHILE,2 200 DATA CHINA,4,JAPAN,4,SPAIN,3,DENMARK,3,ITALY,3,PORTUGAL,3,ENGLAND,3,INDIA,4,IRAN,4,GERMANY,3 210 DATA ARGENTINA,2,URUGUAY,2,PARAGUAY,2,ECUADOR,2,BOLIVIA,2,COLOMBIA,2,VENEZUELA,2,KOREA,4,IRELAND,3 220 DATA QUEENSLAND,6,NEW SOUTH WALES,6,WESTERN AUSTRALIA,6,MONGOLIA,4,NIGER,5,CHAD,5,ZAIRE,5,HONDURAS,1 230 DATA EGYPT,5,SWITZERLAND,3,CAMBODIA,4,VIETNAM,4,FINLAND,3,SWEDEN,3,GUATEMALA,1,IRAQ,4 240 DATA ZAMBIA,5,BANGLADESH,4,AUSTRIA,3,POLAND,3, ^ CZECHOSLAVAKIA,3,GUYANA,2 ^ 250 FOR 1=1 TO 7 260 READ A$(I) 270 NEXT I 280 DATA NORTH AMERICA, SOUTH AMERICA, EUROPE, ASIA, AFRICA,AUSTRALIA,ANTARCTICA 290 PRINT ::"PRESS ANY KEY TO BEGIN." ^ 300 CALL KEY(0,K,S) 310 IF S<1 THEN 300 ^ 320 T=l 330 SC=0 340 FOR 1=1 TO 10 m, 350 CALL CLEAR 360 PRINT "1 NORTH AMERICA":"2 SOUTH AMERICA":"3 E *** UROPE":"4 ASIA" 370 PRINT "5 AFRICA":"6 AUSTRALIA":"7 ANTARCTICA": ^ 380 RANDOMIZE m> 390 R=INT(51*RND) ^ 400 IF C$(R)="" THEN 390 410 PRINT C$(R) ** 420 PRINT :-."WHICH CONTINENT?" 430 CALL KEY(0,K,S) ** 440 IF (K<49)+(K>55)THEN 430 450 CALL HCHAR(23,21,K) 460 IF K=C(R)+48 THEN 490 ^ 470 PRINT ::"SORRY, ";C$(R);" IS IN":A$(C(R)) 480 GOTO 520 *ms 490 PRINT :"CORRECT 1" 500 SC=SC+1 <** 510 C$(R)="" 520 PRINT ::"PRESS <ENTER>"; ^ 530 CALL KEY(0,K,S) A 540 IF K<>13 THEN 530 550 NEXT I m^ 560 CALL CLEAR 570 PRINT "OUT OF 10 PROBLEMS," ^ 580 PRINT :"YOUR SCORE IS";SC 590 PRINT ::::"TRY AGAIN? (Y/N)" ^ 600 CALL KEY(0,K,S) ^ 610 IF K=78 THEN 710 620 IF K<>89 THEN 600 ,•* 630 T=T+1 640 IF T<5 THEN 330 650 PRINT ::"ONE MOMENT PLEASE." 660 RESTORE 670 FOR 1=0 TO 50 680 READ C$(I),C(I) 690 NEXT I 700 GOTO 330 Program 9-21. Multiplication Invasion - TI-99/4A 110 DIM A(3),C(3),R(3),P(3) ' 120 CALL CLEAR ^ 130 PRINT "* MULTIPLICATION INVASION *" ^ 140 PRINT ::"USE THE ARROW KEYS TO MOVE LEFT OR R IGHT." /% 150 PRINT :"GET ABOVE THE PROBLEM THEN TYPE THE A NSWER AND":"PRESS <ENTER>" **> 160 PRINT :"DON'T LET THE INVADERS FLOATTO THE TOP OR THE GAME ENDS1" "*» 170 PRINT ::"CORRECT = 10 POINTS":"WRONG ^ {3 SPACES}= -5 POINTS" 180 CALL CHAR(96,"FFFFFFFFFFFFFFFF") « 190 CALL COLOR(9,7,l) 200 CALL CHAR(97,"08080808087F3E1C08") **i 210 PRINT ::"CHOOSE: 1 BEGINNER":TAB(9);"2 MEDIUM" :TAB(9);"3 FAST"; ^ 220 CALL KEY(0fK,S) ^ 230 IF (K<49)+(K>51)THEN 220 ^ 240 L=(4-(K-48))*2 ^ 250 CALL CLEAR 260 SC=0 ^*s 270 T=0 280 C(l)=3 ^ 290 C(2)=14 300 C(3)=25 "* 310 FOR 1=1 TO 3 ^ 320 CALL HCHAR(1,C(I),96,5) 330 NEXT I ** 340 FOR Y=l TO 3 350 RANDOMIZE "*< 360 GOSUB 880 370 NEXT Y 380 Y=2 390 CALL HCHAR(2,C(Y)+2,97) 400 KL=0 410 CALL KEY(0,K,S) 420 IF S<1 THEN 770 430 IF K<>83 THEN 490 440 CALL HCHAR(2,C(Y)+2,32) 450 Y=Y-1 460 IF Y>0 THEN 770 470 Y=l 480 GOTO 770 490 IF K<>68 THEN 550 500 CALL HCHAR(2,C(Y)+2,32) 510 Y=Y+1 520 IF Y<4 THEN 770 530 Y=3 540 GOTO 770 550 IF (K<48)+(K>57)THEN 770 560 CALL HCHAR(2,C(Y)+2,K) 570 B=K-48 580 CALL KEY(0,K,S) 590 IF S<1 THEN 580 600 IF K=13 THEN 640 610 IF (K<48)+(K>57)THEN 580 620 CALL HCHAR(2,C(Y)+3,K) 630 B=10*B+(K-48) 640 IF B<>A(Y)THEN 740 650 FOR 1=262 TO 392 STEP 12 660 CALL SOUND(-99,I,2) 670 NEXT I 680 CALL HCHAR(R(Y),C(Y),32,5) 690 CALL HCHAR(2,C(Y)+2,32,2) 700 GOSUB 880 710 SC=SC+10 720 T=T+1 730 GOTO 760 740 CALL SOUND(100,-6,4) 750 SC=SC-5 760 CALL HCHAR(2,C(Y)+2,32,2) 770 KL=KL+1 780 CALL HCHAR(2,C(Y)+2,97) 790 IF KL<L THEN 410 800 PRINT 810 FOR 1=1 TO 3 820 CALL HCHAR(1,C(I),96,5) 830 R(I)=R(I)-1 840 IF R(I)<=2 THEN 980 850 NEXT I 860 CALL HCHAR(2,C(Y)+2,97) 870 GOTO 400 m880 M=INT(10*RND) _ 890 N=INT(10*RND) 900 A(Y)=M*N /ms 910 CALL HCHAR(23,C(Y),M+48) 920 CALL HCHAR(23,C(Y)+1,42) ^H 930 CALL HCHAR(23,C(Y)+2,N+48) 940 CALL HCHAR(23,C(Y)+3,61) ^ 950 CALL HCHAR(23,C(Y)+4,63) A 960 R(Y)=23 ^ 970 RETURN ** 980 FOR 1=1 TO 16 990 CALL SCREEN(I) ^ 1000 NEXT I 1010 CALL CLEAR "*> 1020 PRINT "GAME OVER" _ 1030 PRINT ::"SCORE = ";SC::"NUMBER OF PROBLEMS = 1040 END 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.