Autor Beitrag
informatikschüler
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Mo 03.01.11 16:25 
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
Einloggen, um Attachments anzusehen!
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
informatikschüler Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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ß:
ausblenden 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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^

Für diesen Beitrag haben gedankt: informatikschüler
informatikschüler Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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ß):
ausblenden Delphi-Quelltext
1:
c := RadToDeg(ArcTan(a));					

und für Bogenmaß
ausblenden Delphi-Quelltext
1:
c := ArcTan (a);					

Leider bekomme ich hier immer noch falsche Ergebnisse.
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
informatikschüler Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
informatikschüler Threadstarter
Hält's aus hier
Beiträge: 9



BeitragVerfasst: 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!