home *** CD-ROM | disk | FTP | other *** search
- 10 KEY OFF:CLS
- 20 SCREEN 0
- 30 WIDTH 40
- 40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 50 PRINT"░┌───────────────────────────────────┐░"
- 60 PRINT"░│ │░"
- 70 PRINT"░│ 5023-A.BAS │░"
- 80 PRINT"░│ CHEMISTRY TEST │░"
- 90 PRINT"░│ │░"
- 100 PRINT"░│ │░"
- 110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF │░"
- 120 PRINT"░│ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ │░"
- 130 PRINT"░│ █ █ █ █ █ █ │░"
- 140 PRINT"░│ █ █▄▄▄█ █ █ █ │░"
- 150 PRINT"░│ █ █ █ █ █ │░"
- 160 PRINT"░│ ▄▄█▄▄ █ █▄▄▄▄ █▄▄▄█ │░"
- 170 PRINT"░│ │░"
- 180 PRINT"░│ International PC Owners │░"
- 190 PRINT"░│ │░"
- 200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
- 210 PRINT"░│ │░"
- 220 PRINT"░└───────────────────────────────────┘░"
- 230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
- 240 PRINT
- 250 PRINT " PRESS ANY KEY TO CONTINUE
- 260 A$=INKEY$: IF A$="" THEN 260
- 270 WIDTH 80
- 280 CLS
- 1000 ' Written June 20, 1982 by Bill Cumming
- 1010 ' Strathcona-Tweedsmuir School, Okotoks, Alberta, Canada, T0L 1T0
- 1020 ' It will create random tests in four areas of Chemistry with ramdom numbers
- 1030 ' and calculates the answers for the teacher.
- 1040 ' Removing line 1190 and entering a specific random number seed allows the
- 1050 ' teacher to duplicate the numbers and quistions used.
- 1060 ' Paul Cauchon's book Chemistry with a Computer was used in the creation of
- 1070 ' this program.
- 1080 '
- 1090 CLS
- 1100 LOCATE 12,17:PRINT "CHEMICAL FORMULA PROBLEM GENERATOR"
- 1110 LOCATE 13,26:PRINT "W.G. CUMMING 1982"
- 1120 LOCATE 24,1 :PRINT "TO BEGIN HIT RETURN";:INPUT X
- 1130 CLS :LOCATE 10,1:PRINT "THE PROGRAM GENERATES QUESTIONS IN FOUR AREAS:"
- 1140 LOCATE 12,1:PRINT "THEY ARE: 1. CHEMICAL FORMULAS"
- 1150 LOCATE 13,14:PRINT "2. MOLAR MASS CALCULATIONS"
- 1160 LOCATE 14,14:PRINT "3. MASS TO MOLE PROBLEMS"
- 1170 LOCATE 15,14:PRINT "4. GRAM MOLE RELATIONS"
- 1180 LOCATE 18,1:PRINT "CHOOSE EACH AREA BY NUMBER":PRINT
- 1190 RANDOMIZE VAL(MID$(TIME$,1,7))
- 1200 DIM A(30,2)
- 1210 DIM C$(30)
- 1220 DIM K(10,20)
- 1230 FOR I=1 TO 30:FOR J=1 TO 2:READ A(I,J):NEXT J:NEXT I
- 1240 FOR I=1 TO 30:READ C$(I):NEXT I
- 1250 INPUT "WHICH QUIZ ";D
- 1260 ON D GOSUB 1700,1900,2100,2350
- 1270 INPUT "ANOTHER QUIZ Y/N ";X$
- 1280 IF X$="Y" THEN 1250
- 1290 GOTO 2600
- 1300 REM OUTPUT ANSWER KEY
- 1310 LPRINT CHR$(12)+CHR$(27);
- 1320 LPRINT "KEY TO DRILL";D;:LPRINT
- 1330 FOR Y=1 TO N1
- 1340 LPRINT Y*100
- 1350 FOR X=1 TO N:LPRINT X;K(Y,X),:NEXT X
- 1360 LPRINT
- 1370 NEXT Y
- 1380 RETURN
- 1390 FOR X=1 TO 80:LPRINT "-";:NEXT X
- 1400 ' line across
- 1410 LPRINT Y*100
- 1420 FOR X=1 TO 80 :LPRINT "-";:NEXT X:LPRINT
- 1430 RETURN
- 1440 I=INT(RND(1)*15+1):J=INT(RND(3)*15+16):RETURN
- 1450 INPUT "HOW MANY QUESTIONS PER SET";N
- 1460 INPUT "HOW MANY SETS(MAX 20) ";N1
- 1470 PRINT :PRINT
- 1480 RETURN
- 1490 D$=MID$(C$(I),1,3):IF D$="IRO" THEN LPRINT " IRON?":GOTO 1530
- 1500 IF D$="COP" THEN LPRINT " COPPER?":GOTO 1530
- 1510 IF D$="MER" THEN LPRINT " MERCURY?":GOTO 1530
- 1520 LPRINT C$(I);"?"
- 1530 RETURN
- 1540 REM FORMULA WT CALCULATION
- 1550 IF A(I,2)=A(J,2) THEN 1570
- 1560 P=A(I,1)*A(J,2):C=A(J,1)*A(I,2):GOTO 1580
- 1570 P=A(I,1):C=A(J,1)
- 1580 F=P+C:P1=P/F*100:P1=INT(P1*100+.5)/100
- 1590 M=T/F:M=INT(M*100+.5)/100:G=T1*F:G=INT(G*100+.5)/100
- 1600 RETURN
- 1610 DATA 26.98,3,18.05,1,137.33,2,52,3,63.55,2,55.85,2,55.85,3,40.08,2,207.19,2
- 1620 DATA 24.31,2,200.59,2,39.1,1,107.87,1,22.99,1,65.38,2,59.05,1,79.9,1
- 1630 DATA 60.01,2,35.45,1,116,2,61.02,1,17.01,1,62.01,1,46.01,1,126.9,1
- 1640 DATA 94.97,3,96.06,2,32.06,2,80.06,2,83.45,1
- 1650 DATA Aluminum,Ammonium,Barium,Chromium(III),Copper(II),Iron(II),Iron(III)
- 1660 DATA Calcium,Lead(II),Magnesium,Mercury(II),Potassium,Silver,Sodium,Zinc
- 1670 DATA Acetate,Bromide,Carbonate,Chloride,Chromate,Hydrogen Carbonate
- 1680 DATA Hydroxide,Nitrate,Nitrite,Iodide,Phosphate,Sulfate,Sulfide
- 1690 DATA Sulfite,Chlorate
- 1700 REM FORMULA QUIZ
- 1710 PRINT "THIS IS THE FORMULA QUIZ"
- 1720 PRINT :PRINT:INPUT "HOW MANY SETS ";N1
- 1730 INPUT "HOW MANY QUESTIONS PER SET ";N
- 1740 FOR Y=1 TO N1
- 1750 GOSUB 2610
- 1760 S=0
- 1770 LPRINT :LPRINT "GIVE THE FORMULA FOR EACH COMPOUND"
- 1780 LPRINT :LPRINT
- 1790 FOR X=1 TO N
- 1800 LPRINT "(";X;") ";
- 1810 GOSUB 1440
- 1820 LPRINT C$(I);" ";C$(J)
- 1830 LPRINT :LPRINT
- 1840 NEXT X
- 1850 LPRINT :LPRINT
- 1860 FOR X=1 TO 80:LPRINT "-";:NEXT X
- 1870 LPRINT
- 1880 NEXT Y
- 1890 RETURN
- 1900 REM MOLAR MASS CALCULATIONS
- 1910 PRINT "MOLAR MASS QUESTIONS":PRINT
- 1920 GOSUB 1450
- 1930 FOR Y=1 TO N1
- 1940 GOSUB 2610
- 1950 LPRINT "MOLAR MASS QUESTIONS":LPRINT
- 1960 LPRINT "CALCULATE THE MOLAR MASS OF ONE MOLE OF EACH COMPOUND"
- 1970 LPRINT :LPRINT
- 1980 FOR X=1 TO N
- 1990 GOSUB 1440
- 2000 GOSUB 1540
- 2010 K(Y,X)=F
- 2020 LPRINT "(";X;") ";
- 2030 LPRINT C$(I);" ";C$(J)
- 2040 LPRINT :LPRINT :LPRINT
- 2050 NEXT X
- 2060 GOSUB 1390
- 2070 NEXT Y
- 2080 GOSUB 1300
- 2090 RETURN
- 2100 REM MASS-MOLE PROBLEMS
- 2110 PRINT "MASS-MOLE PROBLEMS"
- 2120 GOSUB 1450
- 2130 S=0
- 2140 FOR Y=1 TO N1
- 2150 GOSUB 2610
- 2160 LPRINT "MASS-MOLE PROBLEMS":LPRINT
- 2170 FOR X=1 TO N
- 2180 GOSUB 1440
- 2190 T=INT(RND(1)*500+10):T1=INT(RND(1)*50+5)/10
- 2200 IF RND(1)>.5 THEN 2250
- 2210 LPRINT "(";X;") HOW MANY MOLES OF ";C$(I);" ";C$(J);" IN A"
- 2220 LPRINT " SAMPLE WEIGHING ";T;" GRAMS?"
- 2230 GOSUB 1540
- 2240 K(Y,X)=M:GOTO 2290
- 2250 LPRINT "(";X;") HOW MUCH DO ";T1;" MOLES OF " ;
- 2260 LPRINT C$(I);" ";C$(J);" WEIGH?"
- 2270 GOSUB 1540
- 2280 K(Y,X)=G
- 2290 LPRINT :LPRINT :LPRINT
- 2300 NEXT X
- 2310 GOSUB 1390
- 2320 NEXT Y
- 2330 GOSUB 1300
- 2340 RETURN
- 2350 REM GRAMS TO MOLES
- 2360 PRINT "GRAM MOLE RELATIONSHIPS"
- 2370 GOSUB 1450
- 2380 FOR Y=1 TO N1
- 2390 GOSUB 2610
- 2400 LPRINT "GRAM MOLE RELATIONSHIPS"
- 2410 FOR X=1 TO N
- 2420 GOSUB 1440
- 2430 IF A(I,2)<>A(J,2) THEN 2460
- 2440 IF A(I,2)=1 THEN 2460
- 2450 GOTO 2420
- 2460 T=INT(RND(1)*1000+10):T1=INT(RND(1)*100+1)/10
- 2470 LPRINT "(";X;") HOW MANY GRAMS OF ";C$(I);" ";C$(J)
- 2480 IF RND(1)>.5 THEN 2520
- 2490 LPRINT " CAN BE MADE WITH ";T;" GRAMS OF ";:GOSUB 1490
- 2500 GOSUB 1540
- 2510 K(Y,X)=T/P*F:GOTO 2550
- 2520 LPRINT " CAN BE MADE WITH ";T1;" MOLES OF ";:GOSUB 1490
- 2530 GOSUB 1540
- 2540 K(Y,X)=T1/A(J,2)*F
- 2550 LPRINT :LPRINT :LPRINT :NEXT X
- 2560 GOSUB 1390
- 2570 NEXT Y
- 2580 GOSUB 1300
- 2590 RETURN
- 2600 END
- 2610 LPRINT CHR$(27);
- 2620 LPRINT TAB(23)"STRATHCONA-TWEEDSMUIR SCHOOL"
- 2630 LPRINT Y*100;"CHEM 10 PROBLEMS ABOUT MOLES NAME___________________"
- 2640 FOR X=1 TO 80:LPRINT "-";:NEXT X:LPRINT :LPRINT
- 2650 RETURN
- PROBLEMS ABOUT MOLES NAME___________________"
- 2640 FOR X=1 TO 80:LPRINT "-";:NEXT X:LPRINT :LPRINT
-