Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Delphi: arcus Sinus/Cosinus/Tangens

Hi,

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.

Antworten zu Delphi: arcus Sinus/Cosinus/Tangens:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Achja, was ich vergessen hatte zu erwähnen: Bei einigen Rechenoperationen muss man nur das linke Eingabefeld ausfüllen, eben bei Winkelrechnungen wie Sinus, Cosinus usw.

« Win XP: Programmierer/in gesuchtWin XP User Variable/abfrage mit .bat? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Open Source
Mit Open Source wird Software bezeichnet, die nicht nur kostenlos erhältlich ist, sondern deren Quellcode öffentlich ist.  So kann jeder an dieser Software...

Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet einen unkompilierten Programm-Code einer Software. Der Quellcode ist meist in einer der verbreiteten Programmierspra...

Unicode
Ein Unicode ist ein "Einheitsschlüssel", der als internationaler Standard gilt. Unicode ist ein digitaler Zeichensatz zur Darstellung von weitestgehend jedem Schrift...