Autor Beitrag
jojo1991
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 16.02.07 21:26 
Hallo
Ich habe gerade angefangen mit Delphi zu programmieren(in der Schule).
Nun habe ich begonnen einen Rechner zu programmieren. Allerdings habe ich momentan Probleme mit Sinus etc.Wenn ich das Programm ausführe bekomme ich keine richtigen Werte raus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
var sinus, sinus1, zahl1:Real;
begin
zahl1:=StrToFloat(edit1.Text);
sinus:=DegToRad(zahl1);

sinus1:=sin(sinus1);
edit2.Text:=FloatToStr(sinus1);

end;


Wo liegt mein Fehler?(Ich benutze Delphi 2005)
Wie kann ich andere Variablentypen wie Extended benutzen?Wie sehen dann die Umformungen aus?
Vielen Dank im Voraus für eure Antworten

Moderiert von user profile iconjasocul: Delphi-Tags hinzugefügt
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Fr 16.02.07 21:37 
Hallo und :welcome: im DF :)

benutze doch für Quellcode die Delphi-Tags. Klicke mal auf "Quote" (oben rechts) von meinem Beitrag, dann siehst du wie's geht :)
Dein Fehler liegt glaube ich hier:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button1Click(Sender: TObject);
var sinus, sinus1, zahl1:Real;
begin
zahl1:=StrToFloat(edit1.Text);
sinus:=DegToRad(zahl1);

sinus1:=sin(sinus1);
edit2.Text:=FloatToStr(sinus1);

end;


Ich denke, dass diese "1" entfernt werden muss. Außerdem weiß ich nicht, ob das DegToRad nötig ist, aber da hilft ausprobieren :D


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Fr 16.02.07 21:40 
Du verwendest extended, indem du dem Compiler bemerkbar machst dass du diese verwenden möchtest z.B. indem du deine Variablen damit deklarierst also extended, double oder single statt real. Nebenbei real wird normalerweise wie ein single umgestetzt ist also nicht so präzise zumindest nicht für nen Taschenrechner. Die Funktionen Sinus etc sind ale ind er Unit Math die musst du unter uses einbinden
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Fr 16.02.07 21:40 
Hmm, ich nehme immer statt DegToRad GradToRad.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Fr 16.02.07 22:04 
user profile iconChryzler hat folgendes geschrieben:
Hmm, ich nehme immer statt DegToRad GradToRad.
Ich denke, dass ist falsch: Suche in Wikipedia GON.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.


Zuletzt bearbeitet von wulfskin am Fr 16.02.07 22:12, insgesamt 1-mal bearbeitet
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Fr 16.02.07 22:07 
user profile iconwulfskin hat folgendes geschrieben:
user profile iconChryzler hat folgendes geschrieben:
Hmm, ich nehme immer statt DegToRad GradToRad.
Ich denke, dass ist falsch: Suche in Wikipedia DE.WIKIPEDIA.ORG/WIKI/GON.

Gruß Hape!

Jo, der Link ist falsch. Aber was hat das hiermit zu tun?
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Fr 16.02.07 22:14 
user profile iconChryzler hat folgendes geschrieben:
Jo, der Link ist falsch. Aber was hat das hiermit zu tun?
Lesen:
Wikipedia hat folgendes geschrieben:
...und wurde früher auch Neugrad genannt
GradToRad wandelt vom Gon-Maß in das Bogenmaß um, DegToRad vom Grad in das Bogenmaß.
Darum ist deines (im Sinne von Gradmaß) falsch.

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
jojo1991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 16.02.07 22:23 
Hallo
1.Das war der Fehler. trotzdem bekam ich nach der Behebung bei 180° und 360° wieder Fehlermeldungen.In einem anderen Threat im Forum stand, dass man DegToRad benutzen muss,da Delphi mit dem Bogenmaß rechnet.
2.Das Deklarieren war mir klar.Aber wie wndle ich die Strings in den Variablentyp(z.B. extended) um? Bei Real ist das StrToFloat.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Fr 16.02.07 22:29 
user profile iconjojo1991 hat folgendes geschrieben:
Bei Real ist das StrToFloat.
Hier auch, wie bei allen Kommazahlen (float)! :)

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
Chryzler
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1097
Erhaltene Danke: 2



BeitragVerfasst: Fr 16.02.07 22:31 
user profile iconjojo1991 hat folgendes geschrieben:
Hallo
1.Das war der Fehler. trotzdem bekam ich nach der Behebung bei 180° und 360° wieder Fehlermeldungen.In einem anderen Threat im Forum stand, dass man DegToRad benutzen muss,da Delphi mit dem Bogenmaß rechnet.
2.Das Deklarieren war mir klar.Aber wie wndle ich die Strings in den Variablentyp(z.B. extended) um? Bei Real ist das StrToFloat.

Also geht jetzt bei dir DegToRad oder GradToRad?
jojo1991 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 16.02.07 22:34 
DegToRad

Aber wie gesagt bekomme ich immer noch falsche werte. warum??
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Fr 16.02.07 23:22 
user profile iconjojo1991 hat folgendes geschrieben:
DegToRad

Aber wie gesagt bekomme ich immer noch falsche werte. warum??
ausblenden Delphi-Quelltext
1:
2:
  Deg := 90//90°
  ShowMessage(FloatToStr(sin(DegToRad(Deg)))); //gibt 1 aus...
Also, nochmal langsam:
  • Gradmaß (deg) ins Bogenmaß (rad) umwandeln: DegToRad.
  • Trigonometrische Funktion anwenden, z.B. sin().
  • Ausgeben, z.B. FloatToStr.
Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.