1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        CHEM:   SELF-CORRECTING CHEMISTRY TEST
4  REM
5  REM        36295 REV  B   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
8  REM PROGRAMMER: PAUL DUNPHY, N.S.E.I.T., SYDNEY, N.S.
10  REM PROGRAM DATE: OCT.31, 1972
15  REM DESCRIPTION: THIS PROGRAM WILL GIVE A SELF-CORRECTING
16  REM CHEMISTRY TEST. THE VALUES USED IN EACH QUESTION ARE
17  REM INCREMENTED BY THE USE OF THE RANDOM NUMBER GENERATOR.
20  LET V1=453
30  LET P2=750
40  LET T2=285
41  LET P=Y=X2=0
43  PRINT TAB(26)"***CHEM TEST***"
44  PRINT 
45  PRINT "THERE ARE 3 PARTS: PART 1 IS ON THE IDEAL GAS LAW,"
47  PRINT TAB(19)"PART 2 IS A MASS PROBLEM, AND PART 3 IS"
48  PRINT TAB(19)"ALSO ON THE IDEAL GAS LAW."
50  LET P=Y=0
51  IF X2>0 THEN 68
52  PRINT 
53  PRINT "DIRECTIONS: WHEN THE COMPUTER ASKS FOR THE ANSWER, TYPE IT"
54  PRINT "IN, THEN PUSH 'RETURN'."
55  PRINT 
56  PRINT "USE THE FOLLOWING FORMULA TO CALCULATE THE ANSWERS FOR PARTS"
57  PRINT "1 AND 3: V2=V1*(P1/P2)*(T2/T1). AT S.T.P.,P1=760 MM HG AND"
58  PRINT "T1=273 DEGREES KELVIN."
60  PRINT "YOUR MARK OUT OF 30 WILL BE GIVEN AT THE END."
61  PRINT "VALUES: PART 1---10 QUESTIONS-1 POINT EACH."
62  PRINT TAB(8)"PART 2---1 QUESTION-10 POINTS."
63  PRINT TAB(8)"PART 3---10 QUESTIONS-1 POINT EACH."
64  PRINT 
65  PRINT TAB(26),"PART 1"
66  PRINT TAB(20)"****************"
68  LET P1=760
70  LET T1=273
80  LET Y=Y+1
90  GOSUB 1120
95  PRINT 
100  PRINT Y".IF A"V1"ML SAMPLE OF AN IDEAL GAS IS COLLECTED AT S.T.P."
110  PRINT "AND SUBJECTED TO"P2"MM HG AND"T2" DEGREES KELVIN WHAT WILL"
120  PRINT "ITS FINAL VOLUME BE"
150  GOSUB 850
250  IF Y=10 THEN 265
260  GOTO 68
265  GOSUB 1120
268  PRINT TAB(20),P"POINTS OUT OF 10"
269  LET X2=X2+1
270  GOSUB 1120
271  GOTO 275
272  PRINT "THAT INPUT NUMBER IS NOT RECOGNIZED, TRY AGAIN."
273  PRINT 
274  GOTO 310
275  PRINT "YOU HAVE NOW COMPLETED PART 1. IF YOU WISH TO TRY IT"
280  PRINT "AGAIN WITH THE SAME VALUES, TYPE'2'. IF YOU WANT TO"
290  PRINT "TRY IT AGAIN WITH DIFFERENT VALUES, TYPE'1'. IF YOU"
300  PRINT "WANT TO PROCEED WITH THE REST OF THE TEST,TYPE'0'."
305  PRINT "IF YOU DON'T WANT TO DO ANY MORE,TYPE'3'."
310  INPUT J
320  IF J=1 THEN 50
330  IF J=2 THEN 20
335  IF J=3 THEN 1050
340  IF J=0 THEN 430
350  IF J#0 AND J#1 AND J#2 AND J#3 THEN 272
425  PRINT 
430  PRINT TAB(20)"*****END OF PART 1*****"
435  PRINT 
440  GOSUB 1120
445  PRINT 
450  PRINT TAB(26)"PART 2"
455  PRINT TAB(20)"******************"
480  PRINT "IN THE FOLLOWING REACTION:"
490  PRINT "NAOH+HCL->NACL+H2O(SODIUM HYDROXIDE +HYDROCHLORIC"
495  PRINT "ACID YIELDS SODIUM CHLORIDE AND WATER), HOW MUCH"
500  PRINT "SODIUM HYDROXIDE(IN GRAMS) IS NEEDED TO PRODUCE"
510  PRINT "470 GRAMS OF SODIUM CHLORIDE?"
515  PRINT 
520  PRINT "ATOMIC WEIGHTS: 1. SODIUM=22.98"
530  PRINT TAB(16)"2. CHLORINE=35.45"
540  PRINT TAB(16)"3. HYDROGEN=1.0079"
550  PRINT TAB(16)"4. OXYGEN=15.99"
560  PRINT 
570  PRINT "HOW MANY GRAMS"
580  LET F1=0
582  INPUT D
590  LET O=INT(((470)*(35.45+22.98))/(22.98+15.99+1.0079))
600  IF ABS(O-D)>1 THEN 613
610  IF ABS(O-D)<1 THEN 640
613  IF ABS(O-D)>10 THEN 630
614  IF F1=5 THEN 620
615  PRINT "YOU ARE WITHIN 10 GRAMS, TRY AGAIN FOR 1/2 VALUE."
616  LET F1=F1+5
618  GOTO 582
620  PRINT "SORRY,YOU ARE WRONG AGAIN, CORRECT ANSWER IS"O" GRAMS"
622  GOTO 645
630  PRINT "WRONG, IT TAKES"O"GRAMS"
635  GOTO 650
640  IF F1=5 THEN 647
641  GOTO 655
642  LET F1=10
643  LET P=P+F1
645  PRINT 
646  GOTO 650
647  PRINT "CORRECT------5 POINTS"
648  GOTO 643
650  PRINT TAB(20)"*****END OF PART 2*****"
651  GOTO 660
652  PRINT "THAT INPUT NUMBER IS NOT RECOGNIZED, TRY AGAIN."
653  GOTO 673
655  PRINT "CORRECT------10 POINTS"
657  GOTO 642
660  PRINT 
670  GOSUB 1120
671  PRINT "YOU HAVE NOW COMPLETED PART 2. TO CONTINUE,TYPE'0'."
672  PRINT "TO END HERE,TYPE'1'."
673  INPUT A1
674  IF A1=0 THEN 677
675  IF A1=1 THEN 1050
676  IF A1#0 AND A1#1 THEN 652
677  GOSUB 1120
680  PRINT TAB(26)"PART 3"
681  PRINT TAB(20)"******************"
690  PRINT 
700  PRINT "THE FOLLOWING TEST IS THE SAME AS IN PART 1"
710  PRINT "EXCEPT THAT THE GAS IS NOT COLLECTED AT S.T.P"
720  PRINT 
730  LET V1=342
740  LET P2=739
750  LET T2=230
760  LET T1=376
770  LET P1=753
775  LET R=P
780  LET P=Y=0
790  LET Y=Y+1
800  GOSUB 1120
810  PRINT Y".IF A"V1"ML SAMPLE OF GAS IS COLLECTED AT"P1"MM HG AND"
820  PRINT T1"DEGREES KELVIN, THEN SUBJECTDD TO"P2"MM HG"
821  PRINT "AND"T2"DEGREES KELVIN"
830  PRINT "WHAT WILL ITS FINAL VOLUME BE"
840  GOSUB 850
841  LET P1=INT(P1+(10*RND(0)))
842  LET T1=INT(T1+(10*RND(0)))
843  GOTO 980
850  LET S1=0
851  INPUT N
855  LET V2=INT(V1*(P1/P2)*(T2/T1))
860  IF ABS(V2-N)>1 THEN 880
870  IF ABS(V2-N)<1 THEN 900
880  IF ABS(V2-N)>3 THEN 887
882  LET S1=S1+.5
883  IF S1>.6 THEN 911
884  PRINT "CLOSE, YOU ARE WITHIN 3 MLS, TRY AGAIN."
886  GOTO 851
887  PRINT "WRONG, THE CORRECT ANSWER IS"V2"MLS"
890  GOTO 930
900  IF S1=.5 THEN 914
902  PRINT "CORRECT------1 POINT"
909  LET P=P+1
910  GOTO 930
911  PRINT "SORRY, YOU ARE WRONG AGAIN, THE CORRECT ANSWER IS"V2"MLS."
912  GOTO 930
914  PRINT "CORRECT ON YOUR SECOND TRY------1/2 POINT"
915  LET P=P+.5
930  LET V1=V1+INT(10*RND(0))
950  LET T2=T2+INT(10*RND(0))
960  LET P2=P2+INT(10*RND(0))
965  RETURN 
970  LET T2=T2+INT(10*RND(0))
980  IF Y=10 THEN 995
990  GOTO 790
995  PRINT 
1000  GOSUB 1120
1001  PRINT TAB(20),P"POINTS OUT OF 10"
1002  GOSUB 1120
1003  PRINT 
1004  LET H=R+P
1005  PRINT TAB(17)"YOUR MARK IS"H"OUT OF 30."
1050  PRINT 
1100  PRINT TAB(15)"**********THE END**********"
1110  STOP 
1120  PRINT "****************************************************";
1125  PRINT "******************"
1130  RETURN 
9999  END 
