10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM              PHOTON:  ENERGY LEVEL PROBLEM
40  REM
50  REM              36318 (A833)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM PHOTON--COPYRIGHT 1970, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM   JOHN W. HOSIE - NORTHPORT HIGH - PHYSICS   8/1/69
100  REM  REVISED BY L.BRAUN  8-20-70 
110  REM  R(I) ARE THE ENERGY LEVELS
120  MAT K=ZER
130  MAT R=ZER
140  DIM R[25],K[15],E[6]
150  LET D=0
160  FOR J=1 TO 6
170  LET E[J]=0
180  NEXT J
190  PRINT "IMAGINE THAT YOU HAVE A PHOTON GUN THAT FIRES PHOTONS WITH"
200  PRINT "RANDOMLY SELECTED ENERGIES."
210  PRINT 
220  PRINT "YOU WANT TO FIND SOME OF THE ENERGY LEVELS OF A GAS THAT"
230  PRINT "YOU HAVE ISOLATED FROM A SAMPLE OF MOON ROCK.  YOU WILL"
240  PRINT "DO IT BY FIRING PHOTONS INTO THE GAS AND MEASURING THE"
250  PRINT "ENERGIES OF PHOTONS EMITTED BY THE GAS.  THE GAS WILL EMIT"
260  PRINT "ONLY IF THE PHOTON YOU FIRED IS CAPABLE OF EXCITING ITS"
270  PRINT "ATOMS TO HIGHER ENERGY STATES."
280  PRINT 
290  PRINT 
300  REM  THIS GENERATES A RANDOM NO. IN RANGE 0-15 
310  LET K=INT(15*RND(0)+.5)
320  FOR I=2 TO 5
330  IF K=E[I] THEN 310
340  NEXT I
350  FOR J=2 TO 5
360  IF E[J]=0 THEN 390
370  NEXT J
380  GOTO 410
390  LET E[J]=K
400  GOTO 310
410  FOR J=1 TO 4
420  FOR I=J+1 TO 5
430  IF E[J]<E[I] THEN 470
440  LET K=E[J]
450  LET E[J]=E[I]
460  LET E[I]=K
470  NEXT I
480  NEXT J
490  PRINT "TO FIRE A BURST OF SINGLE ENERGY PHOTONS INTO THE GAS TYPE 1"
500  PRINT "TO CEASE FIRING PHOTONS TYPE 0"
510  PRINT "YOU HAVE 15 SHOTS TO DETERMINE THE ENERGY LEVELS."
520  PRINT 
530  PRINT " ","SHOT NUMBER","ENERGY OF EMITTED PHOTONS (E-19 JOULES)"
540  PRINT 
550  IF D=15 THEN 940
560  PRINT "FIRE!!";
570  INPUT F
580  IF F=0 THEN 940
590  IF F <> 1 THEN 560
600  LET D=D+1
610  LET N=0
620  LET P=INT(15*RND(0)+.5)
630  FOR I=1 TO 15
640  IF P=K[I] THEN 620
650  NEXT I
660  LET K[D]=P
670  FOR I=1 TO 5
680  IF P=E[I] THEN 720
690  NEXT I
700  PRINT " ",D,"0"
710  GOTO 550
720  FOR H=1 TO I
730  FOR J=1 TO I
740  LET N=N+1
750  LET R[N]=E[I+1-J]-E[H]
760  NEXT J
770  NEXT H
780  PRINT " ",D,
790  FOR I=1 TO 25
800  IF R[I]>0 THEN 830
810  LET R[I]=0
820  GOTO 870
830  FOR J=1 TO 25-I
840  IF R[I] <> R[I+J] THEN 860
850  LET R[I+J]=0
860  NEXT J
870  NEXT I
880  FOR N=1 TO 25
890  IF R[N]=0 THEN 910
900  PRINT R[N];
910  NEXT N
920  PRINT " "
930  GOTO 550
940  PRINT 
950  PRINT 
960  PRINT "FIND THE ENERGY LEVELS OF OUR ELEMENT - MYSTERIUM"
970  PRINT "AND ACCOUNT FOR EACH OF THE EMITTED PHOTONS BY DRAWING"
980  PRINT "AN ENERGY LEVEL DIAGRAM AND SHOWING WHICH TRANSITIONS"
990  PRINT "GIVE RISE TO THE PHOTONS."
1000  END 
