Autor |
Beitrag |
informatikschüler
Hält's aus hier
Beiträge: 9
|
Verfasst: 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
      
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)
|
Verfasst: 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 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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
      
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)
|
Verfasst: 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:
| c := sin(DedToRad(a)); c := RadToDeg(acrsin(a)); c := sin(a); 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 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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
Leider bekomme ich hier immer noch falsche Ergebnisse.
|
|
Bergmann89
      
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)
|
Verfasst: 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 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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' , Unit2 in 'Unit2.pas' ,
{$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
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: 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 
Hält's aus hier
Beiträge: 9
|
Verfasst: 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!
|
|