%%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<b+c AND b
<c+a AND c<a+b'
      THEN a b + c +
'U' STO U 2. /
        \<< \-> 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