ich bin ziemlich neu in der programmier welt und ich habe einen auftrag bekommen verschiedene werte eines kreisauschnitts zu berechnen.
gegeben seien dürfen immer nur 2 werte.
soweit sogut, die formeln habe ich, sowie das UI.
kommen wir zum problem, ein wert (die sekante/Kreissehne) wird falsch aus gerechnet
Formel:
s:= 2*r*sin(a/2);
Falls ich beispielsweise für den radius 5 eingebe und für den winkel 35, ergibt das bei meinem programm -9,756
falls ich das aber manuell, bzw mit meinem taschenrechner ausrechne bekomme ich 3,007, und da vertraue ich meinem taschenrechner.
kann mir einer verraten wieso das so ist ? und viel wichtiger: wie ich das beheben kann?
der wert für a wird auch falsch berechnet, nur da weiß ich nicht ob es aus dem resultierendem flaschen ergebnis von s kommt
Formel:
a:= 2*arcsin(s/(2*r));
hier ein auschnitt:
Code: Alles auswählen
if (Parameter1.Text = 'Schenkel') and (Parameter2.Text = 'Winkel') then
begin
r:= StrToFloat(Input1.Text);
a:= StrToFloat(Input2.Text);
Ain:= Pi*sqr(r)/360*a;
b:= r*Pi*a/180;
s:= (2*r)*(sin(a/2));
end;
bitte nich lachen, ich habs nich schlauer hinbekommen die einzelnen werte auszulesen und zu verarbeiten
dann am ende die ausgabe :
Code: Alles auswählen
ABogen.Text:= FloatToStr(b);
ASchenkel.Text:= FloatToStr(r);
AInhalt.Text:= FloatToStr(Ain);
ASekante.Text:= FloatToStr(s);
AWinkel.Text:= FloatToStr(a);
foks