10 REM **** HP TIME-SHARED BASIC PROGRAM LIBRARY ******************* 20 REM 30 REM BFIELD: MAGNETIC FIELD PICTURE 40 REM 50 REM 36312 (A833) REV A -- 10/71 60 REM 70 REM **** CONTRIBUTED PROGRAM ************************************ 80 REM A.C. CAGGIANO; PATCHOGUE H.S.; PHYSICS; 7-'69 90 REM THIS PROGRAM PERMITS A STUDENT TO VISUALIZE THE MAGNETIC 100 REM INDUCTION ABOUT A SINGLE CONDUCTER AND THE INFLUENCE OF THE 110 REM CURRENT ON THE MAGNITUDE OFHE FIELD. THE STUDENT MAY ALSO 120 REM VIEW THE MAGNETIC FIELD DUE TO TWO CURRENTS IN THE 130 REM SAME OR OPPOSITE DIRECTIONS. 140 REM 150 REM IT SHOULD BE NOTED THAT THE PRINTOUT FOR EACH FIELD PLOT TAKES 160 REM ABOUT 4 MINUTES 170 REM 180 REM REVISED BY L. BRAUN AND C. LOSIK 7-28-70 190 REM 200 REM COPYRIGHT 1970, POLYTECHNIC INSTITUTE OF BROOKLYN 210 K,Q=0 220 PRINT "THIS PROGRAM WILL PERMIT YOU TO EXPLORE THE MAGNETIC FIELD" 230 PRINT "ABOUT A CURRENT DIRECTED INTO THE PE AS A FUNCTION OF THE" 240 PRINT "CURRENT MAGNITUDE." 250 PRINT 260 PRINT "WHAT WILL BE YOUR INITIAL CURRENT (SELECT POSITIVE VALUES" 270 PRINT "BETWEEN 1 AND 8 AMPERES)." 280 PRINT "ENTER YOUR VALUE OF CURRENT"; 290 INPUT I1 300 IF ABS(I1)>8 THEN 320 310 IF ABS(I1) >= 1 THEN 340 320 PRINT "C'MON NOW-- ENTER PROPER VALUES." 330 GOTO 280 340 IF K>0 THEN 400 350 PRINT 360 PRINT "THE MAGNITUDE OF THE FIELD DECREASES FROM 9 TO 0. " 370 PRINT "9 IS THE HIGHEST POSSIBLE FIELD STNGTH, AND 0" 380 PRINT "(WHICH MEANS A ZERO FIELD) THE LOWEST." 390 PRINT 400 GOSUB 690 410 LET K=K+1 420 PRINT 430 IF K=2 THEN 460 440 PRINT "SELECT A DIFFERENT CURRENT." 450 GOTO 280 460 PRINT "WOULD YOU LIKE TO TRY TWO DIFFERENT CURRENTS AT THE SAME" 470 PRINT "TIME (YES=1; NO=0)"; 480 INPUT Q 490 IF Q=1 THEN 570 500 IF Q <> 0 THEN 460 510 PRINT "WOULD YOU RATHER TRY ANOTHER CURRENT (YES=1; NO=0)"; 520 INPUT P 530 IF P=1 THEN 280 540 IF P <> 0 THEN 510 550 PRINT ELL I GUESS YOU'RE ALL THROUGH. THANKS-- SEE Y'A" 560 STOP 570 PRINT "THE TWO CURRENTS WILL BE SEPARATED BY 1.0 METER. (NOTE: IF" 580 PRINT "THE CURRENTS ARE TO BE OPPOSITELY DIRECTED, STATE ONE OF THEM" 590 PRINT "AS A NEGATIVE VALUE)." 600 PRINT "ENTER THE TWO CURRENTS"; 610 INPUT I1,I2 620 PRINT 630 GOSUB 690 640 PRINT "WANT TO TRY AGAIN (YES=1; NO=0)"; 650 INPUT P 660 IF P=1 THEN 570 670 IF P=0 THEN 550 680 GOTO 640 690 PRINT 700 PRINT " "," ","METERS" 710 PRINT " "-1.2 -.6 0 .6 1.2" 720 PRINT " METERS",".+.........+.........+.........+.........+." 730 FOR Y=1.2 TO -1.2 STEP (-.1) 740 PRINT " ";INT(10*Y+.5)/10;TAB(15);"."; 750 FOR Z=-2 TO 2 STEP (.1) 760 LET X=.6*Z 770 LET Y2=Y*Y 780 IF Q <> 1 THEN 1000 790 IF ABS(Y)>.001 THEN 900 800 IF ABS(Z+.8)>.001 THEN 860 810 IF I1>0 THEN 840 820 PRINT "-"; 830 GOTO 1380 840 PRINT "+"; 850 GOTO 1380 860 IF ABS(Z-.8)>.001 THEN 900 870 IF I2>0 THEN 840 880 GOTO20 890 REM R1 AND R2 ARE SQUARES !!! 900 LET X1=X+.5 910 LET X2=X-.5 920 LET R1=X1*X1+Y2 930 LET R2=X2*X2+Y2 940 REM PARALLEL WIRES 950 LET H1=I1*Y/R1+I2*Y/R2 960 REM H2 IS REALLY MINUS OF WHAT WE HAVE 970 LET H2=I1*X1/R1+I2*X2/R2 980 LET B=SQR(H1*H1+H2*H2) 990 GOTO 1030 1000 LET R=SQR(X*X+Y2) 1010 IF ABS(R)<.001 THEN 810 1020 LET B=ABS(I1/R) 1030 IF B>.001 THEN 1060 1040 PRINT "0"; 1050 GOTO 1380 1060 FOR J=1 TO 9 1070 IF ABS(B-2.5*J)<.75 THEN 1110 1080 NEXT 1090 PRINT " "; 1100 GOTO 1380 1110 IF J>5 THEN 1270 1120 IF J <> 1 THEN 1150 1130 PRINT "1"; 1140 GOTO 1380 1150 IF J <> 2 THEN 1180 1160 PRINT "2"; 1170 GOTO 1380 1180 IF J <> 3 THEN 1210 1190 PRINT "3"; 1200 GOTO 1380 1210 IF J <> 4 THEN 1240 1220 PRINT "4"; 1230 GOTO 1380 1240 IF J <> 5 THEN 1270 1250 PRINT "5"; 1260 GOTO 1380 1270 IF J <> 6 THEN 1300 1280 PRINT "6"; 1290 GOTO 1380 1300 IF J <> 7 THEN 1330 1310 PRINT "7"; 1320 GOTO 1380 1330 IF J <> THEN 1360 1340 PRINT "8"; 1350 GOTO 1380 1360 IF J <> 9 THEN 1090 1370 PRINT "9"; 1380 NEXT Z 1390 PRINT "." 1400 NEXT Y 1410 PRINT " ",".+.........+.........+.........+.........+." 1420 PRINT 1430 RETURN 1440 END