ich habe ein Problem, und zwar habe ich in Delphi einen Taschenrechner programmiert, der auch Werte für Sinus, Cosinus und Tangens (jeweils im Bogen oder im Gradmass) ausrechnet. Allerdings wollte ich nun noch hinzufügen, dass auch Werte für die Arcus(e) ausgerechnet werden, aber da stimmt irgendwas nicht.. Hier der Taschenrechner als komplimierte exe-Datei:
http://schwoebelbank02.sc.funpic.de/Taschenrechner.exe und hier die Source (also nur die für das Problem wichtigen Teile):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Math, ExtCtrls;
implementation
var rel_Eingabe1, rel_Eingabe2, rel_Ergebnis, rel_Winkel, zahl1, zahl2 :real;
{$R *.dfm}
procedure TForm1.btn_SinClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := sin(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := sin(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
procedure TForm1.btn_CosClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := cos(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := cos(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
procedure TForm1.btn_TanClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := tan(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := tan(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
procedure TForm1.btn_ArcsinClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := ArcSin(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := ArcSin(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
procedure TForm1.btn_ArccosClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := ArcCos(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := ArcCos(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
procedure TForm1.btn_ArctanClick(Sender: TObject);
begin
if (edt_Eingabe1.Text = '')
then begin
edt_Ergebnis.Text := 'Kein Wert eingegeben !';
end
else
begin
if (rbt_Gradmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Winkel := DegToRad(rel_Eingabe1);
rel_Ergebnis := ArcTan(rel_Winkel);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
else if (rbt_Bogenmass.Checked = true)
then begin
rel_Eingabe1 := StrToFloat(edt_Eingabe1.Text);
rel_Ergebnis := ArcTan(rel_Eingabe1);
edt_Ergebnis.Text := FloatToStr(rel_Ergebnis);
end
end;
end;
end.