10  REM PROGRAM NAME = FIELDE, ELECTRIC FORCE FIELD
20  DIM A$[72],N$[72]
30  N$="123456789"
40  PRINT "DO YOU WANT INSTRUCTIONS FOR RUNNING FIELDE?  ";
50  ENTER 200,W,A$
60  PRINT '13
70  IF A$="YES" THEN 100
80  IF A$#"NO" THEN 40
90  GOTO 320
100  PRINT 
110  PRINT "IN THIS PROGRAM YOU WILL BE ABLE TO INPUT THE COORDINATES (X,Y)"
120  PRINT "OF A TEST CHARGE.  THE PROGRAM WILL CALCULATE THE MAGNITUDE"
130  PRINT "AND DIRECTION OF THE ELECTRIC FORCE ON THE TEST CHARGE."
140  PRINT 
150  PRINT "THE DIRECTION OF THE FIELD WILL BE BETWEEN 0 AND 360 DEGREES"
160  PRINT "AND APPLIES TO THE FOLLOWING COORDINATE SYSTEM:"
170  PRINT 
180  PRINT "         90"
190  PRINT "         !"
200  PRINT "         !"
210  PRINT "   180---+---0,360"
220  PRINT "         !"
230  PRINT "         !"
240  PRINT "        270"
250  PRINT 
260  PRINT "YOU WILL BE ABLE TO INPUT THE NUMBER OF SOURCES, THEIR POSITIONS,"
270  PRINT "MAGNITUDES, AND WHETHER THE SOURCE IS POSITIVE OR NEGATIVE."
280  PRINT 
290  PRINT "IF YOU PLOT THE INFORMATION YOU GET ON GRAPH PAPER"
300  PRINT "YOU WILL HAVE A MAP OF  THIS VECTOR FIELD."
310  PRINT "IT IS SUGGESTED THAT YOU BEGIN WITH ONE SOURCE, THEN TRY MORE."
320  PRINT 
330  PRINT "HOW MANY SOURCES DO YOU WANT TO USE?  ";
340  ENTER 200,W,S
350  PRINT '13
360  FOR N=1 TO S
370  PRINT 
380  PRINT "----- SOURCE "N$[N,N]":"
390  K2=30
400  PRINT "INPUT THE MAGNITUDE(COULOMBS) OF SOURCE "N$[N,N]":  ";
410  ENTER #K1,K2,K3,Q[N]
420  PRINT '13
430  IF K3<0 THEN 400
440  LET Q[N]=ABS(Q[N])
450  PRINT "IS THE SOURCE POSITIVE(+) OR NEGATIVE(-)?  ";
460  ENTER #K1,K2,K3,A$
470  PRINT '13
480  IF K3<0 THEN 450
490  IF A$="+" THEN 540
500  IF A$="-" THEN 530
510  PRINT "     INPUT EITHER + OR -."
520  GOTO 450
530  LET Q[N]=-Q[N]
540  PRINT "INPUT THE (X,Y) COORDINATES(METERS) OF SOURCE "N$[N,N]":"
550  GOTO 570
560  PRINT 
570  PRINT "   X = ";
580  ENTER #K1,K2,K3,X[N]
590  IF K3<0 THEN 610
600  GOTO 630
610  PRINT '13
620  GOTO 570
630  PRINT "               Y = ";
640  ENTER #K1,K2,K3,Y[N]
650  PRINT '13
660  IF K3<0 THEN 570
670  NEXT N
680  PRINT '10'10
690  PRINT "TO GET THE MAGNITUDES AND DIRECTIONS OF THE ELECTRIC FORCE"
700  PRINT "AT VARIOUS POINTS, INPUT THOSE (X,Y) COORDINATES.  WHEN YOU"
710  PRINT "HAVE ENOUGH DATA INPUT THE WORD DONE."
720  PRINT '10"-----DATA TABLE:"'10
730  PRINT "  COORDINATES";SPA(13);"DIRECTION";SPA(5);"VECTOR FIELD MAGNITUDE"
740  PRINT SPA(26);"(DEGREES)";SPA(10);"(FIELD UNITS)"
750  PRINT "-----------------------!---------------!--------------------------"
760  PRINT "X = ";
770  ENTER #K1,K2,K3,X
780  IF K3<0 THEN 800
790  GOTO 810
800  PRINT '13
810  PRINT "        !  Y = ";
820  ENTER #K1,K2,K3,Y
830  IF K3<0 THEN 800
840  GOSUB 870
850  GOTO 760
860  PRINT 
870  LET H=V=0
880  FOR N=1 TO S
890  IF ( NOT (X-X[N])) AND ( NOT (Y-Y[N])) THEN 910
900  GOTO 930
910  LET H=V=1.E+19
920  GOTO 1240
930  LET R[N]=SQR((X-X[N])^2+(Y-Y[N])^2)
940  LET H1=((X-X[N])/R[N])*Q[N]/R[N]^2
950  LET V1=((Y-Y[N])/R[N])*Q[N]/R[N]^2
960  LET H=H+H1
970  LET V=V+V1
980  NEXT N
990  R=SQR(H^2+V^2)
1000  IF (H=0) AND (V=0) THEN 1260
1010  IF (H=0) AND (V>0) THEN 1160
1020  IF (H=0) AND (V<0) THEN 1180
1030  IF (H>0) AND (V=0) THEN 1200
1040  IF (H<0) AND (V=0) THEN 1220
1050  IF (H>0) AND (V>0) THEN 1090
1060  IF (H<0) AND (V>0) THEN 1110
1070  IF (H<0) AND (V<0) THEN 1110
1080  IF (H>0) AND (V<0) THEN 1130
1090  LET D=ATN(V/H)
1100  GOTO 1140
1110  LET D=3.14159+ATN(V/H)
1120  GOTO 1140
1130  LET D=(2*3.14159)+ATN(V/H)
1140  LET D=INT((D*180/3.14159)+.5)
1150  GOTO 1280
1160  LET D=90
1170  GOTO 1280
1180  LET D=270
1190  GOTO 1280
1200  LET D=0
1210  GOTO 1280
1220  LET D=180
1230  GOTO 1280
1240  PRINT TAB(23)"!"TAB(28)"YOU ARE AT A SOURCE"
1250  GOTO 1290
1260  PRINT TAB(23)"!"TAB(28)"VECTOR FIELD STRENGTH = 0"
1270  GOTO 1290
1280  PRINT TAB(23);"!";TAB(28);D;TAB(39);"!";TAB(45);(INT((R+.05)*100)/100)
1290  RETURN 
1300  PRINT 
1310  PRINT "NOW PLOT THE INFORMATION ON GRAPH PAPER TO GET A VECTOR FIELD."
1320  END 
