20 REM 30 REM CXARTH: VECTOR ARITHMETIC 31 REM 32 REM 36118 (A303) REV A -- 7/71 33 REM 35 REM ADAPTED BY DSAA 100 P1=PI/180:PRINT "THIS PROGRAM WILL PERFORM ARITHMETIC OPERATIONS": PRINT "ON VECTORS EXPRESSED IN EITHER POLAR OR CARTESIAN SYSTEMS": PRINT:PRINT "WHEN ASKED 'MODE?' TYPE 1 FOR POLAR COORDINATES" 110 PRINT " TYPE 2 FOR CARTESIAN COORDINATES" 120 PRINT "WHEN ASKED 'OPERATION?' TYPE 1 FOR ADDITION": PRINT SPACE$(25%);"TYPE 2 FOR SUBTRACTION": PRINT SPACE$(25%);"TYPE 3 FOR MULTIPLICATION": PRINT SPACE$(25%);"TYPE 4 FOR DIVISION" 130 PRINT "WHEN ASKED 'AGAIN?' TYPE 0 TO STOP THE PROGRAM": PRINT SPACE$(20%);"TYPE 1 TO CONTINUE THE PROGRAM" 140 PRINT "ALL ANGLES INPUT AND OUTPUT ARE IN DEGREES": PRINT "ANSWERS ARE GIVE IN BOTH POLAR AND CARTESIAN FORMS":PRINT 150 INPUT "MODE";M:IF M=1 THEN 160 ELSE IF M=2 THEN 500 ELSE PRINT "YOU GOOFED! TRY AGAIN!":GO TO 150 160 INPUT "MAGNITUDE #1";A;"ANGLE #1";B;"MAGNITUDE #2";C;"ANGLE #2";D: S=A:T=B:GO SUB 1000 170 X1=U:Y1=V:S=C:T=D:GO SUB 1000 180 X2=U:Y2=V:GO TO 680 500 INPUT "X #1";X1;"Y #1";Y1;"X #2";X2;"Y #2";Y2 510 U=X1:V=Y1:GO SUB 1050 520 A=S:B=T:U=X2:V=Y2:GO SUB 1050 530 C=S:D=T 680 INPUT "OPERATION";O:IF O<1 THEN PRINT "YOU GOOFED ! TRY AGAIN!":GO TO 680 690 IF O>1 THEN 710 700 GOSUB 1150:GO SUB 1050:GO TO 900 710 IF O>2 THEN 730 720 GO SUB 1170:GO SUB 1050:GO TO 900 730 IF O>3 THEN 750 740 GO SUB 1190:GO SUB 1000:GO TO 900 750 IF O>4 THEN PRINT "YOU GOOFED! TRY AGAIN!":GO TO 680 760 GO SUB 1250:GO SUB 1000 900 PRINT:PRINT "RESULTANT X = ";U:PRINT "RESULTANT Y = ";V: PRINT "RESULTANT MAGNITUDE = ";S: PRINT "RESULTANT ANGLE = ";T:PRINT 910 INPUT "AGAIN";Z:IF Z=1 THEN 150 ELSE IF Z=0 THEN 9999 ELSE PRINT "YOU GOOFED! TRY AGAIN!":GO TO 910 1000 U=S*COS(P1*T):V=S*SIN(P1*T):RETURN 1050 IF U<>0 THEN 1060 ELSE S=0:T=0:RETURN 1060 S=SQR(U^2+V^2):T=ATN(V/U)/P1:IF U>0 THEN 1070 ELSE T=T+180 1070 RETURN 1150 U=X1+X2:V=Y1+Y2:RETURN 1170 U=X1-X2:V=Y1-Y2:RETURN 1190 S=A*C:T=B+D:IF S>0 THEN 1200 ELSE S=-S:T=T+180 1200 RETURN 1250 S=A/C:T=B-D:IF S>0 THEN 1260 ELSE S=-S:T=T+180 1260 RETURN 9999 END