Autor Beitrag
Lizard
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 26.04.05 08:04 
Hi, ich bin gerade dabei ein Programm für Mathe zu schreiben, mit dem man leicht den Flächeninhalt von Dreiecken berechnen kann.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
procedure TForm1.Button1Click(Sender: TObject);
var a,a2,b, b2,c, c2, alpha, beta, gamma,alpha2, beta2, gamma2, hoehe, inhalt:extended;
    i:integer;
begin
for i := 1 to 6 do
begin
  a := strtofloat(aSeite.Text);
  b := strtofloat(bSeite.Text);
  c := strtofloat(cSeite.Text);
 // alpha := strtoint(alphaWinkel.Text);
 // beta := strtoint(betaWinkel.Text);
 // gamma := strtoint(gammaWinkel.Text);

  if (beta>0) AND (gamma>0) then alpha := 180-beta-gamma else
  begin
    if (a>0) then
    begin
     if (b>0) AND (beta>0) then alpha := arcsin(alpha*(sin(beta)/b));
     if (c>0) AND (gamma>0) then alpha := arcsin(alpha*(sin(gamma)/c));
     if (b>0) AND (c>0) then alpha := arccos((power(b,2)+power(c,2)-power(a,2))/(2*b*c));
    end;
  end;
  if (alpha>0) then
  begin
    if (b>0) AND (beta>0) then a := sin(alpha)*b/sin(beta);
    if (c>0) AND (gamma>0) then a:= sin(alpha)*c/sin(gamma);
    if (b>0) AND (c>0) then a:= sqrt(power(b,2)+power(c,2)-2*b*c*cos(alpha));
  end;
  a2 := c;
  b2 := a;
  c2 := b;
  a:=a2;
  b:=b2;
  c:=c2;
  beta2 := alpha;
  gamma2:=beta;
  alpha2:= gamma;
  alpha := alpha2;
  beta := beta2;
  gamma:= gamma2;
end;
aSeite.Text := floattostr(a);
bSeite.Text:= floattostr(b);
cSeite.Text :=floattostr(c);
alphaWinkel.Text:=floattostr(alpha);
betaWinkel.Text:= floattostr(beta);
gammaWinkel.Text := floattostr(gamma);


end;


Jedoch kriege ich gleich mal bei " if (a>0) then " eine Fehlermeldung: Ungültige Gleitkommaoperation... Kann mir vielleicht einer auf die Sprünge helfen, woran das liegt?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 26.04.05 08:19 
hmmm. Ich blick durch deine Rechnungen grad nicht durch. Aber ich glaube, dass ein Fehler darin liegt, dass Delphi im Bogenmaß rechnet, nicht im Gradmaß. Du musst also deine Winkel (0..360°) erst umrechnen in (0..2Pi).

_________________
We are, we were and will not be.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Di 26.04.05 10:44 
Aus welchen Daten soll denn der Flächeninhalt errechnet werden?
Aus den Seiten a, b, c: Satz von Heron. Dafür ist keine Trigonometrie nötig.