Autor |
Beitrag |
jojo1991
      
Beiträge: 22
|
Verfasst: 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:
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 jasocul: Delphi-Tags hinzugefügt
|
|
MrSaint
      
Beiträge: 1033
Erhaltene Danke: 1
WinXP Pro SP2
Delphi 6 Prof.
|
Verfasst: Fr 16.02.07 21:37
Hallo und  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:
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
MrSaint
_________________ "people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: 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
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Fr 16.02.07 21:40
Hmm, ich nehme immer statt DegToRad GradToRad.
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Fr 16.02.07 22:04
Chryzler hat folgendes geschrieben: | Hmm, ich nehme immer statt DegToRad GradToRad. |
Ich denke, dass ist falsch: 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
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Fr 16.02.07 22:07
Jo, der Link ist falsch. Aber was hat das hiermit zu tun?
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Fr 16.02.07 22:14
Chryzler 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 
      
Beiträge: 22
|
Verfasst: 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
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Fr 16.02.07 22:29
jojo1991 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
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Fr 16.02.07 22:31
jojo1991 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 
      
Beiträge: 22
|
Verfasst: Fr 16.02.07 22:34
DegToRad
Aber wie gesagt bekomme ich immer noch falsche werte. warum??
|
|
wulfskin
      
Beiträge: 1349
Erhaltene Danke: 1
Win XP
D5 Pers (SSL), D2005 Pro, C, C#
|
Verfasst: Fr 16.02.07 23:22
jojo1991 hat folgendes geschrieben: | DegToRad
Aber wie gesagt bekomme ich immer noch falsche werte. warum?? |
Delphi-Quelltext 1: 2:
| Deg := 90; ShowMessage(FloatToStr(sin(DegToRad(Deg)))); | 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.
|
|