![]() |
| If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|||||||
| Tags: basic, may04, obarr, program |
|
|
Thread Tools | Display Modes |
|
#1
|
|||
|
|||
|
O'Barr 6- May04: A basic at program.
Gerald L. O'Barr comments: Here is an old file that could be used by anyone who knew what they were doing. It will have to be moved into a Basic editor, and corrections made by removing this header and making sure that all the long lines become properly reattached, etc. What this shows is three examples of the at theory where particles either attract each other, or repel, or translate. Let me know if you have any troubles! I believe Quick basic is required. 10 DIM F(6, 100, 5): DIM S(2, 9, 9): DIM A(100, 4): DIM B(100, 4) 20 CLEAR : SCREEN 0 80 GOTO 8000 100 TML = 99999!: TMR = 99999! 110 FOR I = 1 TO 4 120 TH = (FL(I, 3) * FL(I, 4) - VL * TL + PL - FL(I, 5)) / (FL(I, 3) - VL) 130 IF TH TML THEN TML = TH: NML = I 140 NEXT 150 FOR I = 4 TO 6: IF F(I, N(I), 2) 1 THEN 180 160 TH = (VL * TL - F(I, N(I), 3) * F(I, N(I), 4) + F(I, N(I), 5) - PL) / (VL - F(I, N(I), 3)) 170 IF TH TML THEN TML = TH: NML = I + 1 180 NEXT 200 FOR I = 1 TO 4 210 TH = (FR(I, 3) * FR(I, 4) - VR * TR + PR - FR(I, 5)) / (FR(I, 3) - VR) 220 IF TH TMR THEN TMR = TH: NMR = I 230 NEXT 240 FOR I = 1 TO 3: IF F(I, N(I), 2) 1 THEN 270 250 TH = (VR * TR - F(I, N(I), 3) * F(I, N(I), 4) + F(I, N(I), 5) - PR) / (VR - F(I, N(I), 3)) 260 IF TH TMR THEN TMR = TH: NMR = I + 4 270 NEXT 284 TH = TMR: IF TML TH THEN TH = TML 286 IF PL + (TH - TL) * VL PR + (TH - TR) * VR THEN 1200 290 IF TML TMR THEN 800 300 PR = PR + (TMR - TR) * VR: TR = TMR: NR = NR + 1 310 IF NMR 5 THEN 600 312 I = 1: IF MR 600 THEN I = 2 320 L = NMR - 4: M1 = F(L, N(L), 2) 330 J = (M1 - M) / d + 5: K = (MR - MR0) / d + 5: S = S(I, J, K) * d 340 V1 = F(L, N(L), 3) 350 F(L, N(L), 2) = 0 360 V = (M1 * V1 + MR * VR - (V1 - VR) * SQR(M1 * MR * (M1 - S) / (MR + S))) / (M1 + MR) 370 VR = V: N(L) = N(L) + 1: C2 = C6: IF MR = MR0 THEN C2 = C7 375 IF MR MR0 THEN C2 = C8 377 MR = MR + S 380 IF N(L) 99 THEN N(L) = 1 385 IF NR 100 THEN 410 390 B(NR, 1) = MR: B(NR, 2) = VR: B(NR, 3) = TR: B(NR, 4) = PR 410 LINE (X20, Y20)-(PR - TR * VB, TR), C2: X20 = PR - TR * VB: Y20 = TR 420 GOTO 100 600 M1 = FR(NMR, 2): V1 = FR(NMR, 3) 605 I = 1: IF MR 600 THEN I = 2 610 J = (M1 - M) / d + 5: K = (MR - MR0) / d + 5: S = S(I, J, K) * d 620 V = (M1 * V1 + MR * VR - (V1 - VR) * SQR(M1 * MR * (M1 - S) / (MR + S))) / (M1 + MR) 630 VV1 = (M1 * V1 + MR * VR + (V1 - VR) * SQR(M1 * MR * (MR + S) / (M1 - S))) / (M1 + MR) 640 MR = MR + S: VR = V: C2 = C6: IF MR - S = MR0 THEN C2 = C7 645 IF NR 100 THEN 660 650 B(NR, 1) = MR: B(NR, 2) = VR: B(NR, 3) = TR: B(NR, 4) = PR 660 FR(NMR, 4) = FR(NMR, 4) + 8 * T: FR(NMR, 1) = FR(NMR, 1) + 1 670 L = (M1 - S - M + d) / d + 4: NN(L) = NN(L) + 1: IF MR - S MR0 THEN C2 = C8 675 IF NN(L) 99 THEN NN(L) = 1 680 F(L, NN(L), 2) = M1 - S: F(L, NN(L), 3) = VV1 690 F(L, NN(L), 4) = TR: F(L, NN(L), 5) = PR 710 LINE (X20, Y20)-(PR - TR * VB, TR), C2: X20 = PR - TR * VB: Y20 = TR 720 IF TR TE THEN WINDOW: GOTO 1840 730 GOTO 100 800 PL = PL + (TML - TL) * VL: TL = TML: NL = NL + 1 810 IF NML 5 THEN 1000 815 I = 1: IF ML 600 THEN I = 2 820 L = NML - 1: M1 = F(L, N(L), 2) 830 J = (M1 - M) / d + 5: K = (ML - ML0) / d + 5: S = S(I, J, K) * d 840 V1 = F(L, N(L), 3) 850 F(L, N(L), 2) = 0 860 V = (M1 * V1 + ML * VL - (V1 - VL) * SQR(M1 * ML * (M1 - S) / (ML + S))) / (M1 + ML) 870 VL = V: N(L) = N(L) + 1: C1 = C3: IF ML = ML0 THEN C1 = C4 875 IF ML ML0 THEN C1 = C5 877 ML = ML + S 880 IF N(L) 99 THEN N(L) = 1 885 IF NL 100 THEN 910 890 A(NL, 1) = ML: A(NL, 2) = VL: A(NL, 3) = TL: A(NL, 4) = PL 910 LINE (X10, Y10)-(PL - TL * VB, TL), C1: X10 = PL - TL * VB: Y10 = TL 920 GOTO 100 1000 M1 = FL(NML, 2): V1 = FL(NML, 3) 1005 I = 1: IF ML 600 THEN I = 2 1010 J = (M1 - M) / d + 5: K = (ML - ML0) / d + 5: S = S(I, J, K) * d 1020 V = (M1 * V1 + ML * VL - (V1 - VL) * SQR(M1 * ML * (M1 - S) / (ML + S))) / (M1 + ML) 1030 VV1 = (M1 * V1 + ML * VL + (V1 - VL) * SQR(M1 * ML * (ML + S) / (M1 - S))) / (M1 + ML) 1040 ML = ML + S: VL = V: C1 = C3: IF ML - S = ML0 THEN C1 = C4 1045 IF NL 100 THEN 1060 1050 A(NL, 1) = ML: A(NL, 2) = VL: A(NL, 3) = TL: A(NL, 4) = PL 1060 FL(NML, 4) = FL(NML, 4) + 8 * T: FL(NML, 1) = FL(NML, 1) + 1 1070 L = (M1 - S - M + d) / d + 1: NN(L) = NN(L) + 1: IF ML - S ML0 THEN C1 = C5 1075 IF NN(L) 99 THEN NN(L) = 1 1080 F(L, NN(L), 2) = M1 - S: F(L, NN(L), 3) = VV1 1090 F(L, NN(L), 4) = TL: F(L, NN(L), 5) = PL 1110 LINE (X10, Y10)-(PL - TL * VB, TL), C1: X10 = PL - TL * VB: Y10 = TL 1120 GOTO 100 1200 TX = (PL - PR + TR * VR - TL * VL) / (VR - VL) 1210 PL = PL + (TX - TL) * VL: PR = PL 1220 TL = TX: TR = TX: VX = VR: VR = VL: VL = VX 1230 MX = MR: MR = ML: ML = MX: NX = NR: NR = NL: NL = NX 1240 LINE (X20, Y20)-(PL - TL * VB, TL), 15 1242 LINE (X10, Y10)-(PL - TL * VB, TL), 15 1244 X20 = PL - TL * VB: X10 = X20: Y20 = TL: Y10 = TL 1250 C3X = C3: C4X = C4: C5X = C5: C3 = C6: C4 = C7: C5 = C8 1260 C6 = C3X: C7 = C4X: C8 = C5X: I = MCR: MCR = MCL: MCL = I 1270 GOTO 100 1840 AL = (A(88, 2) - A(80, 2)) / (A(88, 3) - A(80, 3)) 1850 AR = (B(88, 2) - B(80, 2)) / (B(88, 3) - B(80, 3)) 2000 PRINT N$; " FIGURE "; F1; " HIT ENTER TO CONTINUE" 2030 PRINT "LEFT BODY ACCEL. = "; AL; " RIGHT BODY ACCEL. = "; AR 2040 PRINT "ML="; ML0; " VL="; VL0; " MR="; MR0; " VR="; VR0; 2045 PRINT " LB ="; GS; " RB ="; GE; " TS = "; TS; " TE = "; TE; 2047 INPUT "", A 2050 IF A = 1 THEN 10 2090 PRINT "ENTER 1 FOR A NEW RUN" 2110 PRINT "HIT ENTER KEY TO RETURN TO ORIGINAL INFORMATION. "; 2115 INPUT "", A 2120 IF A 0 THEN 2050 2130 GOTO 2000 8000 CLS : PRINT : PRINT : PRINT " Welcome to O'Barr's At Program" 8005 PRINT : N$ = "O'Barr 3.1, 18 Aug 1994" 8007 PRINT " Version: "; N$ 8010 KEY OFF: d$ = CHR$(27): PRINT : PRINT 8015 PRINT " Input 2 for FIGURE 2: Two 800 bodies, attraction (gravity like)." 8020 PRINT " Input 3 for FIGURE 3: Two 400 bodies, repulsion." 8025 PRINT " Input 4 for FIGURE 4: 400 body chasing 800 body, translation." 8030 PRINT : INPUT " CHOOSE FIGURE, Input 2, 3 or 4 : ", F1 8035 IF F1 = 2 THEN ML = 800: VL = 3.6: PL = 1990: MR = 800: VR = -3.6: PR = 2010: GOTO 8055 8040 IF F1 = 3 THEN ML = 400: VL = -8: PL = 1946: MR = 400: VR = 8: PR = 2052: GOTO 8055 8045 IF F1 = 4 THEN ML = 400: VL = 6.8: PL = 2025: MR = 800: VR = 3.8: PR = 2052: GOTO 8055 8050 GOTO 8030 8055 M = 100: V0 = 100000!: T = .125: LB = 0: RB = 4000: C3 = 3: C4 = 12: C5 = 5: C6 = 14: C7 = 10: C8 = 1 8120 d = 1 8140 FL(1, 2) = M: FL(2, 2) = M: FL(3, 2) = M + d: FL(4, 2) = M - d 8150 FR(1, 2) = M: FR(2, 2) = M: FR(3, 2) = M + d: FR(4, 2) = M - d 8155 FL(1, 4) = T: FL(2, 4) = T * 2: FL(3, 4) = T * 5: FL(4, 4) = T * 6 8160 FOR I = 1 TO 4 8170 FL(I, 5) = LB: FR(I, 5) = RB 8180 FR(I, 4) = FL(I, 4) + T * 2 8190 FL(I, 1) = 1: FR(I, 1) = 1 8200 FL(I, 3) = V0 * SQR(M / FL(I, 2)) 8210 FR(I, 3) = -V0 * SQR(M / FR(I, 2)) 8220 NEXT 8250 FOR I = 1 TO 9 8260 S(1, 4, I) = -1: IF I 4 THEN S(1, 4, I) = 0 8270 S(1, 5, I) = 0 8280 S(1, 6, I) = 1: IF I 6 THEN S(1, 6, I) = 0 8290 S(2, 4, I) = 0 8300 S(2, 5, I) = 1: IF I 4 THEN S(2, 5, I) = -1 8310 S(2, 6, I) = 0 8320 NEXT 8350 ML0 = ML: VL0 = VL: PL0 = PL: MCL = 400: IF ML 500 THEN MCL = 800 8380 MR0 = MR: VR0 = VR: PR0 = PR: MCR = 400: IF MR 500 THEN MCR = 800 8540 CLS : PRINT 8550 PRINT : PRINT N$; ":"; " THE PARTICLES IN FIGURE"; F1; "A": 8560 PRINT " (1) (2) (3) (4) (5)" 8570 PRINT " N MASS VELOCITY TIME POSITION " 8580 PRINT : 8590 PRINT " LEFT "; 8600 FOR I = 1 TO 5: PRINT USING "########.##"; FL(1, I); : NEXT: PRINT : 8610 PRINT " FIELD "; 8620 FOR I = 1 TO 5: PRINT USING "########.##"; FL(2, I); : NEXT: PRINT : 8630 PRINT " ATS "; 8640 FOR I = 1 TO 5: PRINT USING "########.##"; FL(3, I); : NEXT: PRINT : 8650 PRINT " "; 8660 FOR I = 1 TO 5: PRINT USING "########.##"; FL(4, I); : NEXT: PRINT : 8670 PRINT : 8680 PRINT " LEFT BODY 1.00"; : PRINT USING "########.##"; ML0; VL0; TL; PL0 8690 PRINT " RIGHT BODY 1.00"; : PRINT USING "########.##"; MR0; VR0; TR; PR0 8700 PRINT : PRINT " RIGHT "; 8710 FOR I = 1 TO 5: PRINT USING "########.##"; FR(1, I); : NEXT: PRINT : 8720 PRINT " FIELD "; 8730 FOR I = 1 TO 5: PRINT USING "########.##"; FR(2, I); : NEXT: PRINT : 8740 PRINT " ATS "; 8750 FOR I = 1 TO 5: PRINT USING "########.##"; FR(3, I); : NEXT: PRINT : 8760 PRINT " "; 8770 FOR I = 1 TO 5: PRINT USING "########.##"; FR(4, I); : NEXT: PRINT : 8820 PRINT : PRINT : INPUT "HIT ENTER TO CONTINUE", I 8900 CLS : PRINT : PRINT : PRINT 8905 PRINT " THE EXCHANGE OF MASSES BETWEEN PARTICLES A": PRINT 8906 PRINT : PRINT "FOR ALL 400 MASS PARTICLES (M = 400)" 8910 PRINT : PRINT "S(1,9,9) 2 3 4 5 6 7 8" 8930 PRINT " M-3 M-2 M-1 M M+1 M+2 M+3" 8940 PRINT "6 m+d "; : FOR I = 2 TO 8: PRINT S(1, 6, I); " "; : NEXT: PRINT : 8950 PRINT "5 m "; : FOR I = 2 TO 8: PRINT S(1, 5, I); " "; : NEXT: PRINT : 8960 PRINT "4 m-d "; : FOR I = 2 TO 8: PRINT S(1, 4, I); " "; : NEXT: PRINT : 8965 PRINT : PRINT : PRINT "FOR ALL 800 MASS PARTICLES (M = 800)" 8970 PRINT : PRINT "S(2,9,9) 2 3 4 5 6 7 8" 8980 PRINT " M-3 M-2 M-1 M M+1 M+2 M+3" 8990 PRINT "6 m+d "; : FOR I = 2 TO 8: PRINT S(2, 6, I); " "; : NEXT: PRINT : 9000 PRINT "5 m "; : FOR I = 2 TO 8: PRINT S(2, 5, I); " "; : NEXT: PRINT : 9010 PRINT "4 m-d "; : FOR I = 2 TO 8: PRINT S(2, 4, I); " "; : NEXT: PRINT : 9020 PRINT 9030 INPUT "HIT RETURN WHEN READY TO CONTINUE", I 9280 FOR I = 1 TO 6: N(I) = 1: NEXT: PRINT 9290 TS = 0: TE = 25: GS = 1940: GE = 2060: VB = 0: 9300 TS1 = 0: TSD = 5: GS1 = 1940: GSD = 20 9380 SCREEN 9: WINDOW (GS, TS)-(GE, TE) 9390 VIEW (0, 65)-(639, 349): LINE (GS, TE)-(GE, TS), 7, B 9392 FOR I = 0 TO (TE - TS) / TSD: LINE (GS, TS1 + I * TSD)-(GE, TS1 + I * TSD): NEXT 9394 FOR I = 0 TO (GE - GS) / GSD: LINE (GS1 + I * GSD, TE)-(GS1 + I * GSD, TS): NEXT 9396 X10 = PL: Y10 = TS: X20 = PR: Y20 = TS 9400 LINE (GS, .75 * TSD)-(GS + GSD / 10, .75 * TSD), C5 9410 LINE (GS, .5 * TSD)-(GS + GSD / 10, .5 * TSD), C4 9420 LINE (GS, .25 * TSD)-(GS + GSD / 10, .25 * TSD), C3 9430 LINE (GE, .75 * TSD)-(GE - GSD / 10, .75 * TSD), C8 9440 LINE (GE, .5 * TSD)-(GE - GSD / 10, .5 * TSD), C7 9450 LINE (GE, .25 * TSD)-(GE - GSD / 10, .25 * TSD), C6 9500 VIEW PRINT 1 TO 3: GOTO 100 |
| Ads |
|
#2
|
|||
|
|||
|
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| O'Barr 5- May04: The ether background. | Gerald L. O'Barr | The Theory of Relativity | 2 | May 17th 04 09:33 AM |
| O'Barr 4- May04: The fun begins! | Gerald L. O'Barr | The Theory of Relativity | 2 | May 15th 04 11:34 PM |
| O'Barr 1- May04: The collision equations. | Gerald L. O'Barr | The Theory of Relativity | 2 | May 15th 04 02:44 AM |
| O'Barr: Science. | Gerald L. O'Barr | The Theory of Relativity | 30 | May 7th 04 04:48 PM |
| to O'barr (2) | beda pietanza | The Theory of Relativity | 0 | April 28th 04 10:54 PM |