Wunderschönen Sonntag Morgen Allerseits,
ich beschäftige mich erst seit kurzem mit Delphi, von daher bin ich über jeden Tipp dankbar.
Undzwar bin ich grade dabei mir einen eigenen Taschenrechenr zu programmieren (ja, aus Eigeninteresse ). Folgende Funktionen bietet er bis jetzt, welche auch funktionieren:
Funktionen:
-Addition
-Subtraktion
-Multiplikation
-Divison
-Quadratwurzel: x^(1/2)
-Beliebige Wurzel: x^(1/y)
-Quadrierung: x^2
-x^3
-x^y
-Kehrwert: 1/x
-Natürlicher Logarithmus: ln(x)
-Logarithmus zur Basis 10: lg
-Sinus: sin(x)
-Cosinus: cos(x)
-Tangens: tan(x)
Des Weiteren habe ich die Konstanten Pi, die eulersche Zahl und den Goldenen Schnitt (Phi) als Konstanten hinzugefügt (nicht wirklich von Beudeutung).
Widmen wir uns nun meinem Problem:
Mein Taschenrechner macht folgendes, sobald ich auf den Sin(x) Button klicke.
Die Ausgaben, die ich in beiden Fällen erhalte (RAD bzw DEG) Stimmen.
Beim Arcsin sieht das jedoch ganz anders aus:
Das ist meine Berechnung für den Arcsin. Sie kann jedoch nicht stimmen da
X = Arcsin(sin(x))
gilt. Leider trifft diese Formel bei meinem Taschenrechner nicht zu. Folglich gehe ich davon aus, dass ich einen Fehler in der Arcsin Berechnung gemacht habe. Jedoch weiß ich leider nicht wo.
Ich bin für heden Tipp und jede Anmerkung dankbar
MfG
Matthias
ich beschäftige mich erst seit kurzem mit Delphi, von daher bin ich über jeden Tipp dankbar.
Undzwar bin ich grade dabei mir einen eigenen Taschenrechenr zu programmieren (ja, aus Eigeninteresse ). Folgende Funktionen bietet er bis jetzt, welche auch funktionieren:
Funktionen:
-Addition
-Subtraktion
-Multiplikation
-Divison
-Quadratwurzel: x^(1/2)
-Beliebige Wurzel: x^(1/y)
-Quadrierung: x^2
-x^3
-x^y
-Kehrwert: 1/x
-Natürlicher Logarithmus: ln(x)
-Logarithmus zur Basis 10: lg
-Sinus: sin(x)
-Cosinus: cos(x)
-Tangens: tan(x)
Des Weiteren habe ich die Konstanten Pi, die eulersche Zahl und den Goldenen Schnitt (Phi) als Konstanten hinzugefügt (nicht wirklich von Beudeutung).
Widmen wir uns nun meinem Problem:
Mein Taschenrechner macht folgendes, sobald ich auf den Sin(x) Button klicke.
Code:
procedure Tcalc.btsinClick(Sender: TObject); begin if edaus.Text <> '' then begin if cbDEG.checked then begin edaus.Text := FloatToStr(Sin(DegToRad(StrToFloat(edaus.Text)))); end else if cbRAD.Checked then begin edaus.Text := FloatToStr(Sin(StrToFloat(edaus.Text))); end; end; end;
Beim Arcsin sieht das jedoch ganz anders aus:
Code:
procedure Tcalc.btarcsinClick(Sender: TObject); begin if ABS(StrToFloat(edaus.Text)) <= 1 then begin if cbDEG.checked then begin edaus.Text := FloatToStr(ArcSin(DegToRad(StrToFloat(edaus.Text)))); end else if cbRAD.Checked then begin edaus.Text := FloatToStr(ArcSin(StrToFloat(edaus.Text))); end end else if (cbDEG.checked) or (cbRAD.checked) then begin edaus.Text := 'Ungütliger Wert: |x| < 1'; end; end;
X = Arcsin(sin(x))
gilt. Leider trifft diese Formel bei meinem Taschenrechner nicht zu. Folglich gehe ich davon aus, dass ich einen Fehler in der Arcsin Berechnung gemacht habe. Jedoch weiß ich leider nicht wo.
Ich bin für heden Tipp und jede Anmerkung dankbar
MfG
Matthias
Comment