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