10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  *******************
20  REM
30  REM             DECAY2:  NUCLEAR DECAY
40  REM
50  REM             36307  (A833)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  ************************************
80  REM DECAY2 - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM H. DORFMAN+ J. MARCHISOTTO PIB 7/24/69 
100  REM  REVISED BY C.LOSIK  8-12-70 
110  REM CALCULATION OF HALF-LIFE AND REMAINING MASS INCLUDING  
120  REM TABLES AND GRAPHS. 
130  PRINT "DO YOU WANT INSTRUCTIONS (1=YES, 0=NO) : ";
140  INPUT X
150  IF X=0 THEN 340
160  IF X <> 1 THEN 130
170  PRINT "  THIS PROGRAM WILL DO THE FOLLOWING:"
180  PRINT "       CHOICE 1 - CALCULATES HALF-LIFE FROM TWO READINGS"
190  PRINT "                  ON A GEIGER COUNTER."
200  PRINT "       CHOICE 2 - CALCULATES HOW MUCH OF A RADIOACTIVE SAMPLE"
210  PRINT "                  WILL REMAIN AFTER SOME GIVEN AMOUNT OF TIME"
220  PRINT "       CHOICE 3 - PRINTS OUT A TABLE SHOWING MASS OF SAMPLE"
230  PRINT "                   VS. TIME OR NO. OF PARTICLES VS. TIME."
240  PRINT "                   (GRAPH OPTIONAL) NOTE: FOR THE TABLE YOU"
250  PRINT "                   MUST INPUT TOTAL TIME AND TIME INCREMENT."
260  PRINT "                    EXAMPLE: IF TOTAL TIME=100 AND TIME"
270  PRINT "                   INCREMENT=10, THEN TIME IN THE TABLE WILL"
280  PRINT "                   BE 10,20,30,...........,100."
290  PRINT "        CHOICE 4 - END OF PROGRAM"
300  PRINT 
310  PRINT "                   NOTE: IN ANY ONE PROBLEM,TIME MUST"
320  PRINT "                   ALWAYS BE INPUTED IN THE SAME UNITS"
330  PRINT "                   OF MEASURE (IE: SECS.,MINS.,ETC.)"
340  PRINT 
350  PRINT "**********"
360  PRINT 
370  PRINT "WHAT IS YOUR CHOICE";
380  INPUT X
390  PRINT 
400  IF X=1 THEN 450
410  IF X=2 THEN 560
420  IF X=3 THEN 640
430  IF X <> 4 THEN 360
440  STOP 
450  PRINT " WHAT IS THE INITIAL READING ON THE GEIGER COUNTER,"
460  PRINT " THE SECOND READING, AND THE TIME BETWEEN READINGS."
470  INPUT B,A,C
480  IF A>B THEN 510
490  PRINT "INITIAL READING IS ALWAYS LESS THAN FINAL READING."
500  GOTO 470
510  LET D=(.6931*C)/LOG(A/B)
520  PRINT 
530  PRINT "INITIAL READING=";B;"SECOND READING";A;"TIME=";C
540  PRINT "HALF-LIFE="D
550  GOTO 340
560  PRINT "WHAT IS THE HALF-LIFE, INITIAL MASS OF SAMPLE, AND"
570  PRINT "TOTAL TIME OF DECAY";
580  INPUT E,F,G
590  LET H=F*EXP(-.6931*G/E)
600  PRINT 
610  PRINT "HALF-LIFE="E;"INITIAL MASS="F;"TOTAL TIME="G
620  PRINT "MASS OF SAMPLE REMAINING="H
630  GOTO 340
640  PRINT "DO YOU WANT TO WORK WITH PARTICLES OR MASS? (ANSWER 1 FOR"
650  PRINT " PARTICLES OR 2 FOR MASS) ";
660  INPUT J
670  PRINT 
680  IF J=1 THEN 840
690  IF J <> 2 THEN 640
700  PRINT " WHAT IS THE HALF-LIFE, INITIAL MASS OF SAMPLE,TOTAL"
710  PRINT "ELAPSED TIME FOR DECAY, AND THE INCREMENT OF "
720  PRINT "ELAPSED TIME";
730  INPUT E,F,K,M
740  LET W=0
750  LET Q=0
760  LET Z=F
770  PRINT 
780  IF J=1 THEN 890
790  PRINT "HALF-LIFE="E;"INITIAL MASS="F;"TOTAL TIME="K;"INCREMENT="M
800  PRINT 
810  PRINT "TIME","MASS","MASS LOSS","TOTAL MASS LOSS"
820  PRINT "----","----","---- ----","----- ---- ----"
830  GOTO 940
840  PRINT " WHAT IS THE HALF-LIFE, INITIAL NUMBER OF PARTICLES IN THE"
850  PRINT " SAMPLE, TOTAL ELAPSED TIME FOR DECAY, AND THE "
860  PRINT " INCREMENT OF ELAPSED TIME";
870  GOTO 730
880  PRINT 
890  PRINT "HALF-LIFE="E;"INITIAL NO. OF PARTICLES="F
900  PRINT "TOTAL TIME="K;"INCREMENT="M
910  PRINT 
920  PRINT " TIME"," PARTICLES","PART. LOSS","TOTAL PART. LOSS"
930  PRINT " ----"," ---------","----- ----","----- ----- ----"
940  PRINT 
950  FOR G=0 TO K STEP M
960  LET H=F*EXP(-.6931*G/E)
970  LET W=ABS(H-Z)
980  LET Q=Q+W
990  IF F>1.E+06 THEN 1010
1000  IF J=1 THEN 1030
1010  PRINT G,H,W,Q
1020  GOTO 1040
1030  PRINT INT(G+.5),INT(H+.5),INT(W+.5),INT(Q+.5)
1040  LET Z=H
1050  NEXT G
1060  PRINT 
1070  PRINT 
1080  PRINT 
1090  PRINT " DO YOU WANT THE ABOVE DATA GRAPHED? (1-YES, 0-NO)";
1100  INPUT R
1110  IF R=0 THEN 340
1120  IF R <> 1 THEN 1090
1130  PRINT 
1140  PRINT 
1150  PRINT 
1160  PRINT TAB(30);"MASS (OR PARTICLES) REMAINING"
1170  PRINT 
1180  PRINT " ","0";TAB(62);F
1190  PRINT "TIME","I---------I---------I---------I---------I---------I"
1200  FOR G=0 TO K STEP M
1210  LET H=F*EXP(-.6931*G/E)
1220  LET H1=INT(H/F*50+.5)
1230  IF H1 <= 50 THEN 1250
1240  LET H1=50
1250  PRINT G,"I";TAB(H1+14.5);"*"
1260  NEXT G
1270  GOTO 340
1280  END 
