10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM             WAVES:  SUM OF TWO WAVES
40  REM
50  REM             36324 (A833)  REV B -- 2/72
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM WAVES-COPYRIGHT 1970, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM  JOHN W. HOSIE, NORTHPORT HS, PHYSICS, 8/9/68
100  REM  REVISED BY C.LOSIK  8-17-70 
110  REM  WE SORT THE W(I) TO PLOT THE WAVE VALUES. 
120  REM  L,A,P ARE WAVELENGTH, AMPLITUDE, AND PHASE
130  DIM W[3]
140  REM  TWO PI !
150  LET P2=2*3.14159
160  PRINT " ","WAVES AND THEIR SUPERPOSITION"
170  PRINT "DO YOU NEED INSTRUCTIONS (1=YES, 0=NO) : ";
180  INPUT A
190  IF A=0 THEN 380
200  IF A <> 1 THEN 170
210  PRINT 
220  PRINT "IN THIS PROGRAM YOU MAY OBSERVE THE EFFECTS OF"
230  PRINT "CHANGING WAVELENGTH, AMPLITUDE, AND PHASE ON TWO"
240  PRINT "WAVES AND ON THEIR SUM (OR SUPERPOSITION)."
250  PRINT 
260  PRINT "WAVE 'A' IS FIXED.  ITS WAVELENGTH IS 4, ITS AMPLITUDE"
270  PRINT "IS 10, AND ITS PHASE IS 0."
280  PRINT 
290  PRINT "WAVE 'B' MAY BE CHANGED BY YOU.  FOR BEST RESULTS :"
300  PRINT " ","WAVELENGTH (L) BETWEEN 2 AND 4"
310  PRINT " ","AMPLITUDE (A) BETWEEN 5 AND 10"
320  PRINT " ","PHASE (P) BETWEEN 0 AND 1"
330  PRINT " ","(FOR EXAMPLE, .5 PHASE = 1/2 WAVELENGTH"
340  PRINT 
350  PRINT "IT IS EASIEST TO SEE THE EFFECTS OF CHANGES IN EACH"
360  PRINT "PARAMETER IF YOU HOLD TWO CONSTANT AND VARY THE OTHER,"
370  PRINT "ALTHOUGH ALL THREE MAY BE VARIED AT ONCE."
380  PRINT 
390  PRINT "WHAT IS YOUR CHOICE OF WAVELENGTH, AMPLITUDE, AND PHASE";
400  INPUT L,A,P
410  IF L>0 THEN 440
420  PRINT "WAVELENGTH IS ALWAYS A POSITIVE QUANTITY."
430  GOTO 380
440  IF L <= 8 THEN 470
450  PRINT "YOUR WAVELENGTH IS TOO LONG FOR GOOD DISPLAY."
460  GOTO 380
470  IF L >= 1 THEN 500
480  PRINT "YOUR WAVELENGTH IS TOO SHORT FOR GOOD DISPLAY."
490  GOTO 380
500  IF ABS(A) <= 15 THEN 530
510  PRINT "YOUR AMPLITUDE IS TOO LARGE FOR DISPLAY."
520  GOTO 380
530  IF ABS(P-.5) <= .5 THEN 560
540  PRINT "YOUR PHASE CAN ONLY BE BETWEEN 0 AND 1."
550  GOTO 380
560  PRINT 
570  PRINT "NOTATION:","A = 'A' WAVE"
580  PRINT " ","B = 'B' WAVE"
590  PRINT " ","S = SUPERPOSITION WAVE"
600  PRINT 
610  PRINT " X (CM.)","     -20       -10        0        +10       +20"
620  PRINT " ","-I----I---------I---------I---------I---------I----I"
630  FOR X=0 TO 4 STEP .2
640  PRINT TAB(3);INT(10*X+.5)/10;TAB(15);"-";
650  LET W[1]=INT(10*SIN(P2*X/4)+.5)
660  LET W[2]=INT(A*SIN(P2*(X/L+P))+.5)
670  LET W[3]=INT(W[1]+W[2]+.5)
680  REM  FIND WHICH IS SMALLEST, THEN PRINT IT AND MAXIMIZE IT 
690  FOR Q=1 TO 3
700  LET K=1.E+20
710  FOR I=1 TO 3
720  IF W[I]>K THEN 740
730  LET K=W[I]
740  NEXT I
750  PRINT TAB(K+40);
760  FOR I=1 TO 3
770  IF ABS(W[I]-K)<.0001 THEN 800
780  NEXT I
790  STOP 
800  IF I <> 1 THEN 830
810  PRINT "A";
820  GOTO 880
830  IF I <> 2 THEN 860
840  PRINT "B";
850  GOTO 880
860  IF I <> 3 THEN 790
870  PRINT "S";
880  LET W[I]=1.E+25
890  NEXT Q
900  PRINT " "
910  NEXT X
920  PRINT " ","-I----I---------I---------I---------I---------I----I"
930  PRINT 
940  PRINT "WANT TO TRY ANOTHER SET OF VALUES (1=YES, 0=NO) : ";
950  INPUT A
960  IF A=1 THEN 380
970  IF A <> 0 THEN 930
980  END 
