%%HP: T(3)A(D)F(.); DIR DREIB \<< " Dreiecksberechnung" { { "SSS aus a b c" SSS } { "ASA aus \Gb a \Gg" ASA } { "SAS aus a \Gg b" SAS } { "SAA aus a \Gg \Ga" SAA } { "Ergebnisanzeige" ERGEB } { "Ergebnisplot" DRPL } { "Bezeichnungen" { BEZ PICT STO { # 0b # 0b } PVIEW 7. FREEZE } } { "Variablen-Info" VARBEZ } } 1. CHOOSE IF 1. == THEN EVAL END \>> SSS \<< CLLCD "SSS: Seitenl\228nge a eingeben" { V } INPUT OBJ\-> ABS 'a' STO CLLCD "SSS: Seitenl\228nge b eingeben" { V } INPUT OBJ\-> ABS 'b' STO CLLCD "SSS: Seitenl\228nge c eingeben" { V } INPUT OBJ\-> ABS 'c' STO CLLCD "Berechnung aus 3 Seiten a = " a \->STR + " b = " + b \->STR + " c = " + c \->STR + CLLCD 1. DISP \<< IF 'a s \<< '\v/(s*(s-a )*(s-b)*(s-c))' EVAL 'F' STO \>> \>> EVAL 'ACOS( (a^2.+b^2.-c^2.)/(2.* a*b))' EVAL '\Gg' STO ' ACOS((c^2.+a^2.-b^2.) /(2.*c*a))' EVAL '\Gb' STO 'ACOS((b^2.+c^2.- a^2.)/(2.*b*c))' EVAL '\Ga' STO F 2. * c / 'hc' STO F 2. * b / 'hb' STO F 2. * a / 'ha' STO a 2. / \Ga SIN / 'Ru' STO F 2. * U / 'Ri' STO \<< { a b c \Ga \Gb \Gg ha hb hc U F Ru Ri LOE } PURGE \>> 'LOE' STO { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } ORDER CLEAR CLLCD "SSS-Berechnung: Ergebnisse siehe Men\252!" MSGBOX ELSE CLEAR 2640. .1 BEEP "Kein Dreieck! Seitenl\228ngen korrigieren!" MSGBOX END \>> EVAL \>> SAA \<< CLLCD "SAA: Seitenl\228nge a eingeben" { V } INPUT OBJ\-> ABS 'a' STO CLLCD "SAA: Winkel \Gg eingeben" { V } INPUT OBJ\-> ABS '\Gg' STO CLLCD "SAA: Winkel \Ga eingeben" { V } INPUT OBJ\-> ABS '\Ga' STO CLLCD "Berechnung aus 1 Seite und 2 Winkeln a = " a \->STR + " \Gg = " + \Gg \->STR + " \Ga = " + \Ga \->STR + CLLCD 1. DISP IF WFMT EVAL \Gg - \Ga - DUP 0. > THEN '\Gb' STO a \Ga SIN / DUP \Gb SIN * 'b' STO \Gg SIN * 'c' STO a b + c + 'U' STO a b * \Gg SIN * 2. / 'F' STO c \Gb SIN * 'ha' STO a \Gg SIN * 'hb' STO b \Ga SIN * 'hc' STO a 2. / \Ga SIN / 'Ru' STO F 2. * U / 'Ri' STO \<< { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } PURGE \>> 'LOE' STO { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } ORDER CLEAR CLLCD "SAA-Berechnung: Ergebnisse siehe Men\252!" MSGBOX ELSE CLEAR 3520. .1 BEEP " Winkel zu gro\Gb! " END \>> SAS \<< CLLCD "SAS: Seitenl\228nge a eingeben" { V } INPUT OBJ\-> ABS 'a' STO CLLCD "SAS: Winkel \Gg eingeben" { V } INPUT OBJ\-> ABS '\Gg' STO CLLCD "SAS: Seitenl\228nge b eingeben" { V } INPUT OBJ\-> ABS 'b' STO CLLCD "Berechnung aus 2 Seiten und 1 Winkel a = " a \->STR + " \Gg = " + \Gg \->STR + " b = " + b \->STR + CLLCD 1. DISP IF 'a>0. AND \Gg>0. AND b>0.' THEN a \Gg SIN * 'hb' STO '\v/((b-a*COS( \Gg))^2.+hb^2.)' EVAL 'c' STO a b * \Gg SIN * 2. / 'F' STO a b + c + 'U' STO 'ACOS((b^2. +c^2.-a^2.)/(2.*b*c)) ' EVAL '\Ga' STO WFMT EVAL \Ga - \Gg - '\Gb' STO F 2. * a / 'ha' STO F 2. * c / 'hc' STO a 2. / \Ga SIN / 'Ru' STO F 2. * U / 'Ri' STO \<< { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } PURGE \>> 'LOE' STO { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } ORDER CLLCD "SAS-Berechnung: Ergebnisse siehe Men\252!" MSGBOX CLEAR ELSE CLEAR 3520. .1 BEEP "Kein Dreieck!" END \>> ASA \<< CLLCD "ASA: Winkel \Gb eingeben" { V } INPUT OBJ\-> ABS '\Gb' STO CLLCD "ASA: Seitenl\228nge a eingeben" { V } INPUT OBJ\-> ABS 'a' STO CLLCD "ASA: Winkel \Gg eingeben" { V } INPUT OBJ\-> ABS '\Gg' STO CLLCD "Berechnung aus 2 Winkeln und 1 Seite \Gb = " \Gb \->STR + " a = " + a \->STR + " \Gg = " + \Gg \->STR + CLLCD 1. DISP IF WFMT EVAL \Gb - \Gg - DUP 0. > THEN '\Ga' STO a \Ga SIN / DUP \Gb SIN * 'b' STO \Gg SIN * 'c' STO a b + c + 'U' STO a b * \Gg SIN * 2. / 'F' STO c \Gb SIN * 'ha' STO a \Gg SIN * 'hb' STO b \Ga SIN * 'hc' STO a 2. / \Ga SIN / 'Ru' STO F 2. * U / 'Ri' STO \<< { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } PURGE \>> 'LOE' STO { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri LOE } ORDER CLEAR CLLCD "ASA-Berechnung: Ergebnisse siehe Men\252!" MSGBOX ELSE CLEAR 3520. .1 BEEP " Winkel zu gro\Gb! " END \>> DRPL \<< IF 'c' VTYPE -1. \=/ '\Gb' VTYPE -1. \=/ AND THEN 'c*COS(\Gb)+c* SIN(\Gb)*i' EVAL 'AA' STO (0.,0.) 'BB' STO 'a+0.*i' EVAL 'CC' STO BB RE AA RE MIN EVAL 'X1' STO CC RE AA RE MAX EVAL 'X2' STO AA IM EVAL 'Y2' STO 0. 'Y1' STO X2 X1 - 'dx' STO Y2 Y1 - 'dy' STO X1 Y1 R\->C 'DLU' STO IF 'dx/dy\>=114./ 47.' THEN X2 Y1 dx 114. / 47. * + R\->C dx 114. / 8. * DUP R\->C + 'PRO' STO DLU dx 114. / 8. * DUP R\->C - 'PLU' STO ELSE X1 dy 47. / 114. * + Y2 R\->C dy 47. / 8. * DUP R\->C + 'PRO' STO DLU dy 47. / 8. * DUP R\->C - 'PLU' STO END 'PPAR' PURGE # 10000011b # 1000000b PDIM PLU PMIN PRO PMAX AA BB LINE BB CC LINE CC AA LINE PLU C\->R DROP PRO C\->R SWAP DROP R\->C PVIEW 7. FREEZE PICT AA C\->PX { # 110b # 111b } - "A" 2. \->GROB REPL PICT BB C\->PX { # 110b # 0b } - "B" 2. \->GROB REPL PICT CC C\->PX "C" 2. \->GROB REPL PICT BB CC + 2. / C\->PX "a" 2. \->GROB GXOR PICT CC AA + 2. / C\->PX { # 10b # 0b } ADD { # 0b # 1000b } - "b" 2. \->GROB REPL PICT AA BB + 2. / C\->PX { # 110b # 1000b } - "c" 2. \->GROB REPL AA BB + CC + 3. / C\->PX DUP # 11b 0. WFMT EVAL 2. * ARC PIXON { PLU PRO DLU dy dx Y1 Y2 X2 X1 CC BB AA PPAR } PURGE ELSE 2640. .1 BEEP "Plot nicht m\246glich, Werte fehlen!" MSGBOX END \>> BEZ GROB 131 64 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF701000000000000000000000000000000040100000008300000000000000000000004010000000440000000003777955AA4EE2501000000044000000000514154DAA51265010000000C700000000037275CDBA7DEE5010000000440000000005111545BA692A5010000000440000000003777955AB4EE25010000000448000000000000000000000401000000000C300000000000000000000401000000000C400000000000000000000401000000000A800000000000000000000401000000000103000000000000000000040100000000800400000000000000000004010000000080080000000000000000000401000000004800300000000000000000040100000000280050000000000000000004010000000018088000000000000000000401000000003806030000000000000000040100000008C88304000000000000000004010000000407700800000000000000000401000000020000003000000000000000040100000002000B00400000000000000004010000000108840080000000000000000401000000800884000100080000000000040100000040080B000400080000000000040100087040080000080008700000000004010004002000000000300880000000000401000400100000000040088000000000040100040800000000008008800000000004010008780008000000030870000000000401000004000800000004000000000000040100000200080000000800000000000004010000010008000000003000000000000401000001000000000000400000000000040100008000000000000080000000000004010000400000083000000300000000000401000020000804400000040000000000040100002000080280000008000000000004010000100008029000000030000000000401000800020002800000004000000000040100040002000440000000800000000004010004000E170830000000030000000004010002000228000000000004000000000401000100022F0000000000080000000004010080C102A80CCA2AB93000300000000401008022022F022A2A8A20004000000004010041E10000042EAAB930008000000004010022220008082A6B8A0000030000000401001422000806CA2ABA80021500000004010014E1000800000000000519000000040108082000080000000000088030000004010408200008000000000008804000000401020800000800000000000880800000040D32080000080000000000004003000004054FFFFFFFFFFFFFFFFFFFFFFFFB30000405400000000000000000000000044000040D3000000000000C1000000000040000040540000000000000200000000004000004054000000000000C3000000000040000040D30000000000002200000000004400004010000000000000C30000000000830000401000000000000000000000000000000040FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF70 WFMT \<< -17. FS? 2. * -18. FS? + \<< \-> f \<< CASE 'f==0.' THEN 180. END 'f\>=2.' THEN \pi \->NUM END 'f==1.' THEN 200. END END \>> \>> EVAL \>> ERGEB \<< " Ergebnisanzeige" { a b c \Ga \Gb \Gg U F ha hb hc Ru Ri } DUP \<< EVAL \>> DOLIST SWAP \<< \->TAG \>> DOLIST 1. CHOOSE DROP \>> VARBEZ \<< " Variablen-Info" { "a: Seitenl\228nge a" "b: Seitenl\228nge b" "c: Seitenl\228nge c" "\Ga: Winkel \Ga bei A" "\Gb: Winkel \Gb bei B" "\Gg: Winkel \Gg bei C" "U: Umfang" "F: Fl\228cheninhalt" "ha: H\246he auf Seite a" "hb: H\246he auf Seite b" "hc: H\246he auf Seite c" "Ru: Umkreisradius" "Ri: Inkreisradius" } 1. CHOOSE DROP \>> END