Trailing-Edge
-
PDP-10 Archives
-
decuslib20-01
-
decus/20-0025/triang.bas
There are 2 other files named triang.bas in the archive. Click here to see a list.
00100 PRINT
00105 PRINT "THIS PROGRAM FINDS THE UNKNOWN FEATURES OF ANY"
00110 PRINT "TRIANGLE, GIVEN ONE SIDE AND ANY TWO OTHER PARTS."
00115 PRINT
00120 PRINT
00125 PRINT "WHAT WILL BE GIVEN (1=SSS, 2=SAS, 3=SSA, 4=ASA, 5=AAS)";
00130 INPUT N
00135 PRINT
00140 LET R8=0
00145 LET R9=0
00150 IF (N-1)*(N-2)*(N-3)*(N-4)*(N-5)=0 THEN 165
00155 PRINT "ANSWER 1, 2, 3, 4, OR 5 PLEASE...."
00160 GOTO 120
00165 IF N=1 THEN 200
00170 PRINT "(NOTE: SPECIFY ANGLES AS 'DEG, MIN.DEC')"
00175 PRINT
00180 IF N=2 THEN 220
00185 IF N=3 THEN 360
00190 IF N=4 THEN 255
00195 IF N=5 THEN 315
00200 PRINT "WHAT ARE SIDE1, SIDE2, SIDE3";
00205 INPUT S(1),S(2),S(3)
00210 GOSUB 495
00215 GOTO 585
00220 PRINT "WHAT ARE SIDE1, ANG,LE3, SIDE2";
00225 INPUT S(1),A(3),B(3),S(2)
00230 LET I=3
00235 GOSUB 575
00240 LET S(3)=SQR(S(1)^2+S(2)^2-2*S(1)*S(2)*COS(R(3)))
00245 GOSUB 495
00250 GOTO 585
00255 PRINT "WHAT ARE ANG,LE1, SIDE3, ANG,LE2";
00260 INPUT A(1),B(1),S(3),A(2),B(2)
00265 FOR I=1 TO 2
00270 GOSUB 575
00275 NEXT I
00280 LET R(3)=3.1415926-R(1)-R(2)
00285 LET I=3
00290 GOSUB 530
00295 FOR I=1 TO 2
00300 GOSUB 485
00305 NEXT I
00310 GOTO 585
00315 PRINT "WHAT ARE ANG,LE3, ANG,LE1, SIDE3";
00320 INPUT A(3),B(3),A(1),B(1),S(3)
00325 FOR I=1 TO 3 STEP 2
00330 GOSUB 575
00335 NEXT I
00340 LET R(2)=3.1415926-R(1)-R(3)
00345 LET I=2
00350 GOSUB 530
00355 GOTO 295
00360 PRINT "WHAT ARE SIDE1, SIDE3, ANG,LE1";
00365 INPUT S(1),S(3),A(1),B(1)
00370 LET R8=1
00375 LET I=1
00380 GOSUB 575
00385 LET T=(S(3)*SIN(R(1)))/S(1)
00390 IF T-1>0.0000001 THEN 470
00400 IF 1-T>0.00000001 THEN 415
00405 LET R(3)=1.5707963
00410 GOTO 420
00415 LET R(3)=ATN(T/SQR(1-T^2))
00420 LET R(2)=3.1415926-R(1)-R(3)
00425 LET I=2
00430 GOSUB 485
00435 FOR I=2 TO 3
00440 GOSUB 530
00445 NEXT I
00450 IF R9=1 THEN 465
00451 IF S(3)>S(1) THEN 455
00452 GO TO 463
00455 PRINT
00460 PRINT "ONE SOLUTION IS:"
00462 GO TO 465
00463 LET R8=0
00465 GOTO 585
00470 PRINT
00475 PRINT "NO SOLUTION POSSIBLE...."
00480 GOTO 750
00485 LET S(I)=(S(3)/SIN(R(3)))*SIN(R(I))
00490 RETURN
00495 LET P=(S(1)+S(2)+S(3))/2
00500 LET R=SQR(((P-S(1))*(P-S(2))*(P-S(3)))/P)
00505 FOR I=1 TO 3
00510 LET R(I)=2*ATN(R/(P-S(I)))
00515 GOSUB 530
00520 NEXT I
00525 RETURN
00530 LET X1=57.297795*R(I)
00535 LET A(I)=INT(X1)
00540 LET B(I)=60*(X1-A(I))
00545 IF ABS(60-B(I))>0.00005 THEN 560
00550 LET B(I)=0
00555 LET A(I)=A(I)+1
00560 IF ABS(B(I))>0.0001 THEN 570
00565 LET B(I)=0
00570 RETURN
00575 LET R(I)=(A(I)+B(I)/60)/57.297795
00580 RETURN
00585 GOSUB 495
00590 LET W=R*P
00595 LET R1=S(1)/(2*SIN(R(1)))
00600 LET H(1)=S(3)*SIN(R(2))
00605 LET H(2)=S(1)*SIN(R(3))
00610 LET H(3)=S(2)*SIN(R(1))
00615 PRINT
00620 IF R9=1 THEN 640
00625 PRINT
00630 PRINT " "," 1"," 2"," 3"
00635 PRINT " ","-------","-------","-------"
00640 PRINT
00645 PRINT "SIDE",S(1),S(2),S(3)
00650 PRINT
00655 PRINT "ANGLE (RAD)",R(1),R(2),R(3)
00660 PRINT
00665 PRINT "ANGLE (DEG)",A(1),A(2),A(3)
00670 PRINT " (MIN)",B(1),B(2),B(3)
00675 PRINT
00680 PRINT "ALT TO SIDE",H(1),H(2),H(3)
00685 PRINT
00690 PRINT
00695 PRINT "RADIUS OF CIRCUMSCR CIRCLE = ";R1
00700 PRINT "RADIUS OF INSCRIBED CIRCLE = ";R
00705 PRINT " AREA OF TRIANGLE = ";W
00710 PRINT
00715 IF R9=1 THEN 750
00720 IF R8=0 THEN 750
00725 PRINT
00730 PRINT "A SECOND SOLUTION IS:"
00735 LET R9=1
00740 LET R(3)=3.1415926-R(3)
00745 GOTO 420
00750 PRINT
00755 PRINT
00760 PRINT "ANOTHER CASE (1=YES)";
00765 INPUT Q
00770 IF Q=1 THEN 115
00775 END