mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 17:26:38 +00:00
99 lines
2.8 KiB
QBasic
99 lines
2.8 KiB
QBasic
|
|
100 REM N(I)=NUMBER OF ELECTRONIC CHARGE UNITS FOR PARTICLE I
|
|
105 REM COPYRIGHT 1971 - STATE UNIVERSITY OF NEW YORK
|
|
115 REM (NORMALLY DISTRIBUTED WITH MEAN 3 AND DEVIATION 3)
|
|
120 REM M(I)=MASS OF PARTICLE I, BASED ON R(I)
|
|
125 REM R(I)=RADIUS OF PARTICLE I
|
|
130 REM (AVERAGE RADIUS R, 1 PERCENT UNIFORMLY DISTRIBUTED ERROR)
|
|
135 REM MODEL DEVELOPED BY A. CAGGIANO AND D. SCARL
|
|
140 REM PROGRAMMED BY C. LOSIK, JULY 1971
|
|
145 REM LATEST REVISION: 8-25-72
|
|
150 REM Q=RND(-1)
|
|
155 RANDOMIZE
|
|
160 DIM N(4),M(4),R(4)
|
|
165 PRINT " ","MILLIKAN OIL DROP EXPERIMENT"
|
|
170 PRINT
|
|
175 REM V:VOLTAGE, INITIALLY ZERO
|
|
180 LET V=0
|
|
185 REM H:VISCOSITY COEFFICIENT BETWEEN LATEX SPHERE AND AIR
|
|
190 LET H=.000018
|
|
195 REM G:ACCELERATION DUE TO GRAVITY
|
|
200 LET G=9.8
|
|
205 REM Q:COULOMBS PER ELECTRONIC CHARGE UNIT
|
|
210 LET Q=1.6E-19
|
|
215 REM D:DENSITY OF LATEX SPHERE
|
|
220 LET D=1000
|
|
225 REM R:AVERAGE RADIUS OF LATEX SPHERE
|
|
230 LET R=5.E-07
|
|
235 REM D9:PLATE SEPARATION
|
|
240 LET D9=.02
|
|
245 REM P1:VALUE OF 'PI'
|
|
250 LET P1=3.14159
|
|
255 REM M:AVERAGE MASS OF LATEX SPHERE
|
|
260 LET M=4*P1*R*R*R*D/3
|
|
265 REM K1,K2, AND K3 ARE USEFUL CONSTANTS
|
|
270 LET K1=Q/D9
|
|
275 LET K2=G*D9*M
|
|
280 LET K3=6*P1*H
|
|
285 LET N0=0
|
|
290 PRINT "INSTRUCTIONS (1=YES, 0=NO)";
|
|
295 INPUT I
|
|
300 IF I=0 THEN 360
|
|
305 IF I <> 1 THEN 290
|
|
310 PRINT
|
|
315 PRINT "INSTRUCTIONS -- AFTER EACH QUESTION MARK,";
|
|
320 PRINT " (V= ?), YOU MAY:"
|
|
325 PRINT
|
|
330 PRINT "TYPE IN VOLTAGE BETWEEN -1000 AND 1000 (IN ORDER TO MAKE"
|
|
335 PRINT "THE VELOCITY PRINTED OUT AS CLOSE TO ZERO AS POSSIBLE),"
|
|
340 PRINT "REQUEST CALCULATION OF CHARGE FOR STOPPED DROP";
|
|
345 PRINT " (TYPE IN 2000),";
|
|
350 PRINT "REQUEST NEW BATCH OF DROPS (TYPE IN 3000),"
|
|
355 PRINT "OR END THE PROGRAM (TYPE IN 4000)."
|
|
360 PRINT
|
|
365 PRINT
|
|
370 PRINT " ","NO ELECTRIC FIELD"
|
|
375 PRINT
|
|
380 PRINT "DROP:",N0+1,N0+2,N0+3,N0+4
|
|
385 PRINT " ","---","---","---","---"
|
|
390 IF N0>0 THEN 415
|
|
395 PRINT " VELOCITY"
|
|
400 PRINT "(METERS/SEC)"
|
|
405 PRINT "( X 10^-6 )"
|
|
410 REM GENERATE RANDOM CHARGE, RADIUS, AND MASS
|
|
415 FOR I=1 TO 4
|
|
420 LET N(I)=INT(3+3*COS(6.283*RND(1))*SQR(-2*LOG(RND(1)))+.5)
|
|
425 IF ABS(N(I)-4)>4 THEN 420
|
|
430 LET R(I)=R*(.99+.02*RND(I))
|
|
435 LET M(I)=4*P1*R(I)*R(I)*R(I)*D/3
|
|
440 NEXT I
|
|
445 PRINT " ",
|
|
450 FOR I=1 TO 4
|
|
455 PRINT .1*INT(1.E+07*(K1*V*N(I)-M(I)*G)/(K3*R(I))+.5),
|
|
460 NEXT I
|
|
465 PRINT " "
|
|
470 PRINT "V=";V;" ";
|
|
475 INPUT I
|
|
480 IF ABS(I)>1000 THEN 495
|
|
485 LET V=I
|
|
490 GOTO 445
|
|
495 PRINT
|
|
500 IF I <> 2000 THEN 565
|
|
505 PRINT
|
|
510 PRINT "CALCULATION FOR WHICH DROP";
|
|
515 INPUT I
|
|
520 FOR J=1 TO 4
|
|
525 IF N0+J-I=0 THEN 540
|
|
530 NEXT J
|
|
535 GOTO 505
|
|
540 PRINT
|
|
545 PRINT "CHARGE ON DROP";I;" IS";.01*INT(1.E+21*K2/V+.5);
|
|
550 PRINT " X 10^-19 COULOMBS."
|
|
555 PRINT
|
|
560 GOTO 470
|
|
565 IF I <> 3000 THEN 580
|
|
570 LET N0=N0+4
|
|
575 GOTO 375
|
|
580 IF I <> 4000 THEN 470
|
|
585 END
|
|
*U*:7-, |