$ ******************************* $ ** ** $ ** TRIG HELPER ** $ ** by David Harvey ** $** April 1986 ** $** ** $******************************* **************************  DpW # 6 $ 128 % (15,10),"TRIG HELPER" )22,12),"RIGHT ANGLE TRIANGLE (Y/N)"; <G$= F G$="Y" dHO P G$="N" DJP ZT|@ d************************** n SETSQR x 15,6 100,300 600,700 600,300 100,300 600,320 580,320 580,300  4 13,6),"HYP" 13,15),"ADJ" 26,9),"OPP" 8,13),"A1" 21,5),"A2" B3,20),"ENTER THE INFORMATION IF YOU HAVE IT ELSE ENTER 0"  #"****************************** , SETOBT 6 @15,6 J 100,300 T 600,700 ^ 800,300 h 100,300 r 900,700 | 15,3  900,300 21,800,300  900,700  21,600,700  600,700  21,600,200  800,300  21,800,200  100,300 21,100,200  800,200  780,180  800,200  780,220  100,200  120,220 & 100,200 0 120,180 : 580,180 D 620,220 N 620,180 X 580,220 b900,700 l 880,680 v 900,700  920,680  900,300  880,320  900,300  920,320  450,750  580,640 37,5,5  615,640  37,5,5  700,750  4 13,6),"S1" 18,15),"S2"  31,9),"S3" 8,13),"A1"  24,5),"A2" *29,13),"A3" 437,7),"H" >15,17),"P1" H29,17),"P2" R17,0),"PA1" \28,0),"PA2" Bf3,20),"ENTER THE INFORMATION IF YOU HAVE IT ELSE ENTER 0" p $z*******************************  NUMERIC(PROMPT$) 2,22),""; %" " 2,22),"";  PROMPT$; ;INVAL$ ( (INVAL$)> 10 INVAL$=INVAL$,10) FLAG1=0  LOOP = 1 (INVAL$) P INVAL$,LOOP,1)<>"." INVAL$,LOOP,1)<"0" INVAL$,LOOP,1)>"9" FLAG1=1  LOOP  FLAG1=1 tNC INVAL=(INVAL$)   !**************************** $ ANGULAR(PROMPT$) .2,22)""; '8" " B2,22)""; LPROMPT$;" DEGREES"; V;INDEG$; `FLAG1=0 j LOOP=1(INDEG$) 8t INDEG$,LOOP,1)<"0" INDEG$,LOOP,1)>"9" FLAG=1 ~ LOOP  FLAG1=1 TnD  (INDEG$)<0 TnD INDEG=(INDEG$)  22,22);" MINUTES"; ;INMIN$; FLAG1=0  LOOP=1(INMIN$) 9 INMIN$,LOOP,1)<"0" INMIN$,LOOP,1)>"9" FLAG1=1  LOOP  FLAG1=1 TnD  (INMIN$)<0 TnD INMIN=(INMIN$)   INMIN<0 INMIN>59 TnD INMIN=INMIN/60 INDEG=INDEG+INMIN (INANG=(INDEG) 2 <*************************** #F****************************** P GETSQR ZOPP=0:ADJ=0:HYP=0:A1=0:A2=0 dNUMERIC("SIDE OPP'") nOPP=INVAL: OPP>0 CO=CO+1 xNUMERIC("SIDE ADJ'") -ADJ=INVAL: ADJ>0 CO=CO+1: CO=2 t`E NUMERIC("SIDE HYP'") HYP=INVAL: HYP>0 CO=CO+1 9 CO=0 1,1)"AT LEAST ONE SIDE IS REQUIRED": D@F = HYP>0 ADJ>0 HYP0 OPP>0 HYP0 OPP>0 ADJ0 ADJ>0 HYP=ADJ 1,1)"HYP AND ADJ CANNOT BE EQUAL":D@F H HYP>0 OPP>0 OPP=HYP 1,1)"HYP AND OPP CANNOT BE EQUAL":D@F  CO=2 TlF ANGULAR("ACUTE ANGLE A1") A1=INANG: A1>0 CO=CO+1 7 (A1)>45 (A1)<0 1,1)"BAD PROPORTION": D@F  CO=2 TlF ANGULAR("OBTUSE ANGLE A2") A2=INANG: A2>0 CO=CO+1 @" A2<>0 (A2)>90 (A2)<45 1,1)"BAD PROPORTION":D@F ,EROR=0 6 %@EROR=1:SOUND: DELAY=12500:: J******** GET OBT ********** T GETOBT B^S1=0:S2=0:S3=0:A1=0:A2=0:A3=0:PA1=0:PA2=0:P1=0:P2=0:H=0:AREA=0 hNUMERIC("BASE S2") rS2=INVAL: S2>0 CO=CO+1 |NUMERIC("LONG SIDE S1") S1=INVAL: S1>0 CO=CO+1 NUMERIC("SHORT SIDE S3") S3=INVAL: S3>0 CO=CO+1 9 S1>0 S3>0 S3>S1 9,9)"BAD PROPORTION": DpH 9 S1>0 S2>0 S1>S2 9,9)"BAD PROPORTION": DpH 9 S2>0 S3>0 S3>S2 9,9)"BAD PROPORTION": DpH C S1>0 S2>0 S3>0 S1+S3=0 CO=CO+1 : P2>0 S2>0 P2=>S2 9,9)"BAD PROPORTION": DpH BALANCE  CO=3 DzH NUMERIC("BASE PORTION P1") P1=INVAL: P1>0 CO=CO+1 9 P2>0 P1>0 P2>P1 9,9)"BAD PROPORTION": DpH 8 S2>0 P1>0 P1=>S2 9,9)"BAD PROPORTION":DpH A S2>0 P1>0 P2>0 P1+P2<>S2 9,9)"BAD ADDITION":DpH )& CO=3 S2>0 P1>0 P2>0 CO=CO-1 +BALANCE 0 CO=3 DzH :NUMERIC("HIEGHT H") DH=INVAL: H>0 CO=CO+1 7N H>0 S1>0 H=>S1 9,9)"BAD PROPORTION":DpH 7X H>0 S3>0 H=>S3 9,9)"BAD PROPORTION":DpH 7b H>0 S2>0 H>S2 9,9)"BAD PROPORTION": DpH gBALANCE l CO=3 DzH vANGULAR("ANGLE A1") A1=INANG: A1>0 CO=CO+1 4 A1>0 (A1)>60 9,9)"BAD PROPORTION":DpH 6 CO=3 A1>0 S1=0 H=0 P1=0 P2=0 CO=CO-1 BALANCE  CO=3 DzH ANGULAR("ANGLE A3") A3=INANG: A3>0 CO=CO+1 5 A3>0 (A3)>90 9,9)"BAD PROPORTION": DpH 9 A1>0 A3>0 A1>A3 9,9)"BAD PROPORTION": DpH = CO=3 A3>0 A1=0 S3=0 H=0 P1=0 P2=0 CO=CO-1 BALANCE  CO=3 DzH ANGULAR("TOTAL ANGLE A2") A2=INANG: A2>0 CO=CO+1 5 A2>0 (A2)>180 9,9)"BAD PROPORTION":DpH 7 A3>0 A2>0 A3>A2 9,9)"BAD PROPORTION":DpH 7 A2>0 A1>0 A1>A2 9,9)"BAD PROPORTION":DpH BALANCE  CO=3 DzH  ANGULAR("PART ANGLE PA1") PA1=INANG: PA1>0 CO=CO+1 >  PA1>0 A2>0 PA1>A2 9,9)"PA1 CANNOT BE >A2": DpH E$ CO=3 PA1>0 P1=0 P2=0 S1=0 H=0 A3=0 A2=0 CO=CO-1 %BALANCE * CO=3 DzH 4ANGULAR("PART ANGLE PA2") >PA2=INANG: PA2>0 CO=CO+1 =H PA2>0 A2>0 PA2>A2 9,9)"PA2 CANNOT BE >A2": DpH ;R PA2>0 PA1>0 PA10 PA2>0 A2>0 PA1+PA2<>A2 9,9)"BAD ADDITION":DpH f DzH !pEROR=1:SOUND: J=12500:: zEROR=0: ***************************  CALSQR ###### A1 #############  A1>0 TFI  OPP=0 HYP=0 d@H A1=(OPP/HYP):TFI  ADJ=0 HYP=0 dTH A1=(ADJ/HYP): TFI  OPP=0 ADJ=0 dhH A1=(OPP/ADJ): TFI  A2=0 TFI A1 = (90)-A2 ###### A2 #############  A2>0 DjI  HYP=0 ADJ=0 TdI  A2=(ADJ/HYP):DjI $ OPP=0 HYP=0 TxI . A2=(OPP/HYP): DjI 8 ADJ=0 OPP=0 DLI B A2=(ADJ/OPP):DjI L A1=0 DjI V A2=(90)-A1:DjI ` ####### HYP ############# j HYP>0 dXI t OPP = 0 ADJ=0 tHI ~ HYP = (OPP^2+ADJ^2):dXI  A1=0 OPP=0 t\I  HYP=OPP/(A1):dXI  A1=0 ADJ =0 tpI  HYP=ADJ/(A1):dXI  A2=0 OPP=0 dDI  HYP=ADJ/(A2):dXI  A2=0 A2=0 dXI  HYP=OPP/(A2):dXI  ######## OPP ############  OPP>0 DPJ  HYP=0 ADJ=0 T@J  OPP=(HYP^2-ADJ^2): DPJ  A1=0 HYP=0 TTJ  OPP=HYP*(A1): DPJ  A1=0 ADJ=0 ThJ  OPP=ADJ*(A1): DPJ ( A2=0 ADJ=0 T|J 2 OPP=ADJ/(A2): DPJ < A2=0 HYP=0 DPJ F OPP=HYP*(A2): DPJ P ####### ADJ ############ Z ADJ>0 dHJ d HYP=0 OPP=0 DxJ n ADJ=(HYP^2-OPP^2): dHJ x A1=0 HYP=0 tLJ  ADJ=HYP*(A1): dHJ  A2=0 HYP=0 t`J  ADJ=HYP*(A2): dHJ  OPP=0 A2=0 ttJ  ADJ=OPP*(A2): dHJ  OPP=0 A1=0 dHJ  ADJ=OPP*(1/(A1)):dHJ  ####################### 1 A1=0 A2 =0 ADJ=0 OPP=0 HYP=0 tXH  AREA=(OPP*ADJ)/2  ! ####### CALC OBLIQUE ####### CALOBT   A1>0A3=0 A2=0 TbK  A1=(180)-(A2+A3) " A2>0 A1=0 A3 =0 TvK , A2=(180)-(A1+A3) 6 A3>0 A2=0 A1=0 DJK @ A3=(180)-(A1+A2) 'J S3>0 S2=0 A1=0 A2 =0 D^K T S3=(S2*(A1))/(A2) &^ A1>0 S1=0 S3=0 A2=0 DrK $h A1=((S3*(A2))/(S1-(S3*(A2)))) &r S1>0 S2=0 A2=0 A3=0 tFK | S1=(S2*(A3))/(A2) & A2>0 S1=0 A3=0 S3=0 tZK $ A2=((S1*(A3))/(S3-(S1*(A3)))) & A1>0 S3=0 A2=0 S2=0 tnK  A1=((S3*(A2))/S2) & A3>0 S2=0 A2=0 S1=0 dBK  A3=((S1*(A2))/S2)  S2>0 P1=0 P2=0 dVK S2=P1+P2  PA1>0 A1=0 djK  PA1=(90)-A1  PA2>0 A3=0 d~K  PA2=(90)-A3 ! A2>0 PA1=0 PA2=0 TRL  A2=PA1+PA2  H>0 A3=0 S3=0 TfL  H=S3*(A3) & H>0 A1=0 S1=0 TzL 0 H=S1*(A1) : H>0 S1=0 P1=0 DNL D H=(S1^2-P1^2) N H>0 S3=0 P2=0 DbL X H=(S3^2-P2^2) b A1>0 PA1=0 DvL l A1=(90)-PA1 v A3>0 PA2=0 tJL  A3=(90)-PA2 P1>0 PA1=0 S1=0 t^L  P1=S1*(PA1) P2>0 PA2=0 S3=0 trL  P2=S3*(PA2) ! PA1>0 A2=0 PA2=0 dFL  PA1=A2-PA2 ! PA2>0 A2=0 PA1=0 dZL  PA2=A2-PA1  A1>0 S1=0 H=0 dnL  A1=(H/S1)  A3>0 H=0 S3=0 TBM  A3=(H/S3)  S3>0 H=0 P2=0 TVM  S3=(H^2+P2^2)  S1>0 H=0 P1=0 TjM  S1=(H^2+P1^2) * S1>0 A1=0 H=0 T~M 4 S1=H/(A1) > S1>0 A1=0 P1=0 DRM H S1=P1/(A1) R S3>0 A3=0 H=0 DfM \ S3=H/(A3) f S3>0 A3=0 P2=0 DzM p S3=P2/(A3) z  A1>0 P1=0 H=0 tXM  A1=(H/P1)  A3>0 P2=0 H=0 tlM  A3=(H/P2) & A2>0 S3=0 S1=0 S2=0 d@M ( A2=(((S1^2+S3^2)-S2^2)/(2*(S1*S3)))  P1>0 P2=0 S2=0 dTM P1=S2-P2  P2>0 P1=0 S2=0 dhM P2=S2-P1  P1>0 H=0 S1=0 d|M  P1=(S1^2-H^2)  P2>0 S3=0 H=0 TPN P2=(S3^2-H^2)  H>0 S1=0 PA1=0 TdN H=S1/(PA1) $ H>0 S3=0 PA2=0 TxN .H=S3/(PA2) 8 H>0 PA1=0 P1=0 DLN BH=P1/(PA1) L H>0 P2=0 PA2=0 D`N VH=P2/(PA2) ` H>0 A1=0 P1=0 DtN jH=P1*(A1) t H>0 A3=0 P2=0 tHN ~H=P2*(A3)  P1>0 PA1=0 H=0 t\N P1=H*(PA1)  P2>0 PA2=0 H=0 tpN P2=H*(PA2)  P1>0 A1=0 S1=0 dDN P1=S1*(A1)  P2>0 A3=0 S3=0 dXN P2=S3*(A3)  S1>0 P1=0 PA1=0 dlN S1=P1/(PA1)  S3>0 P2=0 PA2=0 T@O S3=P2/(PA2)  S1>0 H=0 PA1=0 TTO  S1=H/(PA1)  S3>0 H=0 PA2=0 ThO S3=H/(PA2) ( PA1>0 S1=0 P1=0 T|O 2PA1=(P1/S1) < PA2>0 S3=0 P2=0 DPO FPA2=(P2/S3) P PA1>0 H=0 P1=0 DdO ZPA1=(P1/H) d PA2>0 H=0 P2=0 DxO nPA2=(P2/H) )x AREA>0 S2=0 S1=0 A1=0 DzO yAREA=(S2*S1*(A1))/2 z   #****************************** CO=CO+1  CO=4  ######## TEST ########## SETSQR EROR=0:CO=0 GETSQR  EROR =1 t~O CALSQR 0,20)120," ") 0,19)" HYP=";HYP 14,19)" ADJ=";ADJ 27,19)" OPP=";OPP A1=(A1):ROUND(A1):A1=AX 4"0,20)" A1=";(A1);" D ";(60*(A1-(A1)));" M " 'A2=(A2):ROUND(A2):A2=AX 5,14,20)" A2=";(A2);" D ";(60*(A2-(A2)));" M " 627,20)" AREA=";AREA; @ tHS J*********************** TSETOBT ^EROR=0:CO=0 hGETOBT r EROR=1 DJP |CO=0 CALOBT 1,18)120," ") 0,21)80," "),; 0,18)" S1=";S1 14,18)" S2=";S2 27,18)" S3=";S3 0,19)" P1=";P1 14,19)" P2=";P2 27,19)" H=";H A1=(A1):ROUND(A1):A1=AX 40,20)" A1=";(A1);" D ";(60*(A1-(A1)));" M " A2=(A2):ROUND(A2):A2=AX 514,20)" A2=";(A2);" D ";(60*(A2-(A2)));" M " A3=(A3):ROUND(A3):A3=AX 527,20)" A3=";(A3);" D ";(60*(A3-(A3)));" M " !PA1=(PA1):ROUND(PA1):PA1=AX 80,21)" PA1=";(PA1);" D ";(60*(PA1-(PA1)));" M " !PA2=(PA2):ROUND(PA2):PA2=AX 914,21)" PA2=";(PA2);" D ";(60*(PA2-(PA2)));" M "  27,21)" AREA=";AREA,;  tHS  & BALANCE #0### TEST FOR ONE SIDED INPUTS# 8: CO=3 A3=0 PA2=0 S3=0 P2=0 A2=0 CO=CO-1 8D CO=3 A1=0 PA1=0 S1=0 P1=0 A2=0 CO=CO-1 N X SOUND YX=1 Z LOOP=150 0 -20 b 1,-9,LOOP,X l DELAY=120: v 2,-9,LOOP+10,X  DELAY=120:  3,-9,LOOP+20,X  DELAY=120:  LOOP  1,0,0,0  2,0,0,0  3,0,0,0  #### WAIT FOR KEY#######  12 ,0,9)"PRESS THE SPACE BAR FOR MENU",;  1,-9,100,1  DELAY=1100: 1,0,0,0 $G$=(500): G$<>" " tS dDS )0,9)" ",; tRS  p###### ERROR HANDLING##### z =17  "AN ERROR HAS BEEN DETECTED, THIS MAY BE DUE TO AN INCORRECT INPUT OR A PROGRAM FAULT. AFTER MAKING SURE THE DISC IS IN PRESS THE SPACE BAR AND THE PROGRAMM WILL BE RE-LOADED. WHEN RE-ENTERING YOUR INFORMATION ENSURE THAT IT IS" ""PROPORTIONAL TO THE DIAGRAM" G$=  G$=" " "TRIG" X**** ANGLE ROUNDING ****** b ROUND(AN) *l AN+.008=>(AN)+1 AX=(AN)+1 AX=AN v (AN)+1 AX=AN v =(AN)+1 AX=AN