Entwickler-Ecke

Sonstiges (Delphi) - Umkehrfunktion Sinus funktioniert nicht


informatikschüler - Mo 03.01.11 16:25
Titel: Umkehrfunktion Sinus funktioniert nicht
Hallo Community,

ich habe ein weiteres Problem mit meinem programmierten Taschenrechner, die Umkehrfunktion von sinus und Cosinus funktionieren nicht. Ich habe Uses Math schon eingegeben, aber bei arcsin kommen nur falsche Ergebnisse raus. Ich habe das Programm im Anhang dabei, es wäre sehr nett wenn sich den Fehler jemand mal anschauen würde.

LG


Bergmann89 - Mo 03.01.11 16:36

Hey,

das Ergebnis, sowie die Parameter dieser Funktionen sind im Bogenmaß, und nicht im Gradmaß. Einfach die Werte vorher umrechnen, oder DegToRad bzw RadToDeg benutzen.

MfG Bergmann.


informatikschüler - Mo 03.01.11 16:46

Hi!

Wenn ich ein Ergebnis im Winkelmaß haben möchte, muss ich das RadToDeg einfügen und wenn ich Bogenmaß haben möchte kann ich arcsin einfach so stehen lassen?
Ich kenne die RadToDeg anweisung nicht, wie muss das dann im Programm aussehen?

Vielen Dank!


Bergmann89 - Mo 03.01.11 16:50

Hey,

RadToDeg bzw DegToRad is ne ganz normale Funktion. Dann is mir nochwas aufgefallen. Du rechnest beim ArcSin/ArcCos die Eingabe nochmal um, das ist falsch. Das Ergebnis der Funktion ist im Bogenmaß:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
//sin im Gradmaß
c := sin(DedToRad(a));
//arcsin im Gradmaß
c := RadToDeg(acrsin(a));
//sin im Bogenmaß
c := sin(a);
//acrsin im Bogenmap
c := acrsin(a);


MfG Bergmann.


informatikschüler - Mo 03.01.11 17:09

Super!

Jetzt bleibt nur noch das Problem mit der Tangensumkehrfunktion, die mit dem RadToDeg leider nicht funktioniert. Ich habe jetzt eingegeben(für Gradmaß):

Delphi-Quelltext
1:
c := RadToDeg(ArcTan(a));                    

und für Bogenmaß

Delphi-Quelltext
1:
c := ArcTan (a);                    

Leider bekomme ich hier immer noch falsche Ergebnisse.


Bergmann89 - Mo 03.01.11 17:16

Hm, eigentlich sollte das so funktionieren. Die Tangens-Funktion kann das Ergebnis aber nur zwischen 0 und 180° bzw zwischen 0 und Pi abbilden. Ist das vlt der Fehler? Wenn du das Ergebnis zwischen 0 und 360° bzw 0 und 2Pi haben möchtest, dann muss du ArcTan2 benutzen. Guck ma in die Hilfe da steht das alles genau drin. Ich bin mir jetzt nicht 100% sicher.

MfG Bergmann


informatikschüler - Mo 03.01.11 17:53

Leider kann ich das Programm gerade nicht ausführen, weil irgendein syntaxfehler mir dazwischen kommt. Kann mir jemand sagen was da falsch läuft:
In taschenrechner.dpr steht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
program taschenrechner;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2},


{$R *.res}



begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

Fehlermeldung ist:
[Fehler] taschenrechner.dpr(13): Bezeichner erwartet, aber 'BEGIN' gefunden

Warscheinlich ein totaler Anfängerfehler...


Tilman - Mo 03.01.11 17:56

Die DPR sollte man als Anfänger normalerweise nicht bearbeiten. Hast du eventuell eine Unit entfernt? Jedenfalls ist das letzte Komma falsch (Zeile 6), dort muss ein Semikolon ";" hin.


informatikschüler - Mo 03.01.11 18:00

Vielen Dank!
Ja, ich hatte ausversehen noch eine Unit erzeigt und die danach weider gelöscht und dann das Semikolon nicht verschoben. Aber jetzt wird mir das alles viel klarer! Danke!