10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  *******************
20  REM
30  REM             36301  (A833) REV A -- 10/71
40  REM
50  REM
60  REM
70  REM ****  CONTRIBUTED PROGRAM  ************************************
80  REM EVOLU--COPYRIGHT 1970-- POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM PROGRAM DEVELOPED BY DR. A. FRISHMAN, S.U.N.Y. FARMINGDALE
100  REM AND R. COOPERMAN, JOHN GLENN HIGH SCHOOL. 
110  REM  REVISED BY C.LOSIK  7-6-70
120  REM D=DARK MOTH ARRAY, L=LIGHT MOTH ARRAY, Z=MAX. POPUL. 
130  DIM D[31],L[31]
140  PRINT " ","EVOLUTION STUDY"
150  PRINT 
160  PRINT "WITHIN A LARGE POPULATION OF PEPPER MOTHS, THERE ARE A FEW"
170  PRINT "INDIVIDUALS WHICH SHOW UP DARKER IN COLOR THAN THE NORMAL"
180  PRINT "LIGHT COLORED MOTHS BECAUSE OF MUTATIONS."
190  PRINT 
200  PRINT "YOU ARE GOING TO STUDY THIS POPULATION OF PEPPER MOTHS FOR 30"
210  PRINT "YEARS AND SEE WHAT HAPPENS TO THE NUMBER OF DARK MOTHS WHEN"
220  PRINT "YOU ALTER ENVIRONMENTAL CONDITIONS."
230  PRINT 
240  PRINT "SELECT A MUTATION RATE VALUE BETWEEN 1 AND 10.  THE"
250  PRINT "HIGHER THE NUMBER, THE HIGHER THE MUTATION RATE IS, AND THUS"
260  PRINT "THERE ARE MORE DARK MOTHS IN OUR POPULATION."
270  INPUT M
280  IF M<1 THEN 300
290  IF M <= 10 THEN 330
300  PRINT "THE MUTATION RATE YOU HAVE CHOSEN DOES NOT FALL WITHIN THE"
310  PRINT "PRESCRIBED RANGE 1-10. TRY AGAIN."
320  GOTO 270
330  PRINT 
340  PRINT "HOW MANY LIGHT COLORED MOTHS ARE THERE IN THE AREA?"
350  PRINT "SELECT A NUMBER BETWEEN 1000 AND 1000000 ";
360  INPUT P0
370  IF P0<1000 THEN 390
380  IF P0 <= 1.E+06 THEN 420
390  PRINT "THE NUMBER OF MOTHS YOU HAVE CHOSEN DOES NOT FALL WITHIN THE"
400  PRINT "PRESCRIBED RANGE 1000-1000000. TRY AGAIN."
410  GOTO 360
420  LET Z=P0
430  PRINT 
440  PRINT "YOU HAVE THE POWER TO CHANGE THE ENVIRONMENT."
450  PRINT "AT WHAT POINT IN OUR THIRTY YEAR PERIOD DO YOU WANT"
460  PRINT "TO IMPLEMENT YOUR POWER? SELECT A YEAR FROM 3 THROUGH 10."
470  INPUT X
480  IF X<3 THEN 500
490  IF X <= 10 THEN 530
500  PRINT "THE YEAR CHOSEN DOES NOT FALL WITHIN THE RANGE 3-10."
510  PRINT "TRY AGAIN."
520  GOTO 470
530  PRINT 
540  PRINT "IS THE ENVIRONMENTAL CHANGE GOING TO FAVOR"
550  PRINT "LIGHT MOTHS (TYPE 1) OR DARK MOTHS (TYPE 2)";
560  INPUT E
570  IF E=1 THEN 610
580  IF E=2 THEN 610
590  PRINT "PLEASE TYPE 1 OR 2 NOT";E
600  GOTO 560
610  PRINT 
620  REM ONE LOOP FOR CALCULATION 
630  FOR T=1 TO 30
640  REM  CHECK IF ENVIRONMENT HAS CHANGED
650  IF T >= X THEN 700
660  REM  NOT YET (FAVORS LIGHT MOTHS)
670  LET P1=0
680  GOTO 770
690  REM  ENVIRONMENT HAS CHANGED 
700  IF E <> 2 THEN 670
710  LET P1=INT(P1+.01*M*P0+.5)
720  LET P0=INT(Z-P1+.5)
730  IF P1<Z THEN 770
740  REM  COMPLETE REVERSAL OF POPULATION HAS OCCURED 
750  LET P1=Z
760  LET P0=0
770  LET L[T]=P0
780  LET D[T]=P1
790  NEXT T
800  REM OUTPUT OF RESULTS
810  PRINT "HOW DO YOU WISH TO SEE THE RESULTS?"
820  PRINT "1=TABLE ONLY, 2=GRAPH ONLY, 0=BOTH";
830  INPUT E
840  FOR T=0 TO 2
850  IF E=T THEN 900
860  NEXT T
870  PRINT "AW C'MON. I'M NOT DUMB. TRY AGAIN."
880  GOTO 820
890  PRINT 
900  PRINT 
910  PRINT "FOR A MUTATION RATE OF";M
920  IF E>1 THEN 1010
930  PRINT 
940  PRINT 
950  PRINT "YEAR","DARK MOTHS","LIGHT MOTHS"
960  PRINT "----","---- -----","----- -----"
970  REM  OUTPUT TABLE
980  FOR T=1 TO 30
990  PRINT T,D[T],L[T]
1000  NEXT T
1010  IF E=1 THEN 1220
1020  PRINT 
1030  PRINT 
1040  PRINT " ","L=LIGHT MOTHS,   D=DARK MOTHS"
1050  PRINT " ","VALUES GRAPHED AS PERCENTAGE OF POPULATION."
1060  PRINT 
1070  REM SCALE OF GRAPH IS ZERO TO ONE
1080  PRINT TAB(5);"0";TAB(54);"100"
1090  PRINT TAB(5);"I---------I---------I---------I---------I---------I"
1100  FOR T=1 TO 30
1110  PRINT T;TAB(5);"I";
1120  LET L[T]=50*L[T]/Z
1130  LET D[T]=50*D[T]/Z
1140  IF L[T]>D[T] THEN 1180
1150  IF D[T]>L[T] THEN 1200
1160  PRINT TAB(5+L[T]);"*"
1170  GOTO 1210
1180  PRINT TAB(5+D[T]);"D";TAB(5+L[T]);"L"
1190  GOTO 1210
1200  PRINT TAB(5+L[T]);"L";TAB(5+D[T]);"D"
1210  NEXT T
1220  PRINT 
1230  PRINT 
1240  PRINT "DO YOU WANT TO RUN THIS PROGRAM AGAIN (1=YES,0=NO)";
1250  INPUT E
1260  IF E=1 THEN 230
1270  IF E <> 0 THEN 1240
1280  END 
