Autor |
Beitrag |
Palmetshofer
      
Beiträge: 44
|
Verfasst: Mo 23.09.02 17:25
Hi erstmal!
Es handelt sich hier um ein Programm mit dem man karthesiche Koordinaten in Polarkoordinaten umwandeln kann. Wie man das alles rechnet weis ich, aber ich brauch noch die Befehle dazu.
Also ich brauch nur ein paar befehle:
1. Ich brauche den befehl für sin, cos und tan und deren umkehrbefehle.
2. Ich muss wissen wie man zwischen DEG, RAD und GRAD umstellen kann.
3. Ob man mit den ² Tasten arbeiten kann oder im compiler etwas anderes eingeben muss wie z.B.: ^2 oda sowas!!
Danke für eure Hilfe im voraus!!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Fabian
      
Beiträge: 42
|
Verfasst: Mo 23.09.02 17:40
Hallo erstmal
1. Um die Befehle für sin, cos tan usw. zur Verfügung zu haben musst du erst die Unit math in deine uses Klausel aufnehmen. Leider wurde diese Unit nicht in allen Delphi Versionen mitgeliefert. Sollte diese Unit bei dir nicht vorhanden sein musst du dich nach einer Alternative umsehen.
Wenn diese Unit bei dir vorhanden ist lauten die Befehle sin(x), cos(x), tan(x), arcsin(x), arccos(x), arctan(x) um die Entsprechenden Werte für x zu errechnen. Beachte das x als Bogenmaß (Radiant) angegeben werden muss.
2. Um zwischen Deg, Rad und Grad umzurechnen stellt Delphi ebenfalls einige Funktionen zu verfügung. Wie z.B. DegToRad(x) um von Deg in Rad umzurechnen. Dementsprechend DegToGrad, RadToDeg, GradToRad usw.
3. Um das Quadrat einer Zahl zu erhalten musst du soweit ich weiß entweder die Power Funktion (Auch in der Unit math enthalten) benutzen
x:=Power(a, 2) um die Quadratzahl von a zu errechnen
x:=Power(a, n) um a hoch n zu berechnen.
oder du schreibst selbst eine Funktion die das Quadrat einer Zahl berechnet.
Quelltext 1: 2: 3: 4:
| function quadrat(a : Extended): Extended; begin result:=a*a; end; |
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Mo 23.09.02 17:49
such mal nach dem Befehl arctan2, der ist dafür die allround-Lösung, aber pass auf: y vor x!!!
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Mo 23.09.02 17:49
Danke vielmals für die schnelle antwort !! da hab ich noch eine frage !! was ist die grundeinstellung in delphi bei sin() usw ?
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Mo 23.09.02 17:53
Fabian hat folgendes geschrieben: |
oder du schreibst selbst eine Funktion die das Quadrat einer Zahl berechnet.
|
schon mal was von qrt gehört, warum immer gleich so kompliziert???
und X^Y versteht der Compiler glaub ich, ² oder ³ nicht
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Mo 23.09.02 18:08
hmm ok
aber ich wollt noch wissen was stadtart für sin() ist (Deg, rad o. Grad)?
und wie zieht man wurzeln??
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
LCS
      
Beiträge: 1305
Erhaltene Danke: 1
WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
|
Verfasst: Di 24.09.02 07:25
Hi
standardmässig arbeitet Delphi immer mit RAD. Wenn du die Wurzeln nicht von deinem Zahnarzt ziehen lassen willst (made in Kalau  ) nimm SQRT.
Kleiner Tip: Wenn du in der Onlinehilfe eine Funktion anzeigen lässt, gibts da immer einen Verweis auf die Kategorie. Da stehen dann alle weiteren Funktionen dieser Art
Gruss Lothar
_________________ Der BH ist für die Brust, der Plan ist für'n Ar...
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Di 24.09.02 15:46
Hmm bei mir kommt wenn ich das hier mache:
Quelltext 1:
| Edit1.Text := FloatToStr(RadToDeg(10 * Cos(30))); |
88, irgendwas heraus aber es sollte 5 herauskommen!!
Was mach ich falsch??
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Di 24.09.02 16:15
Hallo Palmetshofer,
es ist alles richtig, was Delphi berechnet.
Du musst genau aufpassen, wo du Bogenmaß und wo du Grad brauchst.
Bei dir:
cos(30) Das ist Bogenmaß! Ergebnis: 0.1543
Das ganze nimmst du mal Zehn. Ergebnis: 1.543
Aber erst dann rechnest du von Bogenmaß in Grad um.
--> Also: (1.543*180)/PI --> Ergebnis: 88.38.
Ist also alles richtig.
Und wie willst du auf 5 kommen?
cos(30) ist bei mir (in Gradmaß) 0.866
___________
Ex0rzist
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Di 24.09.02 16:17
Achso ich sehe gerade. Du kommst nur auf 5, wenn du statt Cosinus den Sinus verwendest. Dann kommt es hin.
Aber auch nur, wenn du peinlichst genau auf Bogenmaß und Gradmaß achtest.
btw: DEG == Grad
________
Ex0rzist
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Di 24.09.02 17:23
Um es gleich vorweg zu nehmen!!
DEG is NICHT Grad!!!
Deg = 360°
GRAD = 400° Wird in der vermessung gebraucht!!
Hmm ich werd mich da noch ein bissal spielen!!´
Hmm könnte mich mit Cos und sin täuschen aber meines erachtens kann sin nicht größer sein als 1 !! ! ists auch nur bei 90° !!!!!!!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Di 24.09.02 18:00
Du meinstest mit Grad bestimmt Neugrad. Das geht bis 400.
Dann habe ich dich eben missverstanden. Ich meinte Grad als deutsches Wort für degree (bis 360).
Wie auch immer.
Mit dem Ergebnis 5 nahm ich Bezug auf deine Beispielfunktion.
Mir ist schon klar, dass Sinus und Cosinus nicht größer als eins sein können. Aber du hattest ja noch mit 10 multipliziert. Daher 5.
_____________
Ex0rzist
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Di 24.09.02 18:46
Hmm Habe mit zehn multipliziert weil wenn der Punkt P die koordinaten
P[10;30°] Hat muss man das so machen!!
Formel:
r * cos x°
oder eben sin!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Di 24.09.02 19:00
Woher soll ich denn bitte wissen, was du für Punkte hast?
Gehe bitte etwas sparsamer mit Ausrufezeichen um. Man hat immer den Eindruck, dass man angebrüllt wird.
Oder ist das wirklich so?
_____________
Ex0rzist
|
|
Tante
      
Beiträge: 41
|
Verfasst: Mi 25.09.02 10:30
So, jetzt mische ich mich hier auch mal ein.
Zitat: |
Edit1.Text := FloatToStr(RadToDeg(10 * Cos(30)));
|
Ich denke, der grundsätzliche Fehler ist, dass Du RadToDeg falsch anwendest.
Weil nicht das Ergebnis von cos(x) ist in Radiant, oder Degree angegeben, sondern x ist entweder Radiant oder Degree. Das Ergebnis ist in jedem Fall einfach nur eine Zahl, ohne Einheit. Deswegen macht es auch keinen Sinn, diese Zahl dann später mit RadToDeg umzurechnen
Sondern Du willst doch die 30° in Radiant umrechnen, damit die Cosinus-Funktion (oder von mir aus auch die Sinus-Funktion) dann richtig rechnen.
Es muß also heißen:
Quelltext 1:
| Edit1.Text := FloatToStr(10 * Cos(DegToRad(30))); |
Und wenn Du dann noch statt Cosinus den Sinus nimmst (wie Ex0rzist schon sagte), dann kommst Du auch auf Deine 5.
Also, um Mißverständnisse zu vermeiden:
Quelltext 1:
| Edit1.Text := FloatToStr(10 * Sin(DegToRad(30))); |
Okay? 
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Mi 25.09.02 17:54
Danke für deine antwort!
Hab das programm schon fast fertig.
Hab trotzdem noch ne Frage:
Was ist die umkehrfunktion für Cos, Sin und Tan in delphi?
Danke
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Mi 25.09.02 18:14
Palmetshofer hat folgendes geschrieben: | Was ist die umkehrfunktion für Cos, Sin und Tan in delphi? |
ArcCos, ArcSin und ArcTan.
Das Ergebnis liegt im Bogenmaß vor.
___________
Ex0rzist
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Mi 25.09.02 19:02
So jetzt funktioniert alles!!
Als letzten feinschliff möchte ich automatisch erkennen lassen ob sich in einem textfeld ein '-' als "Vorzeichen" der zahl die derin enthalten is befindet. Einfach: Ist ein Minus im Textfeld oder nicht?
Könnte mir da jemand was posten?
Danke
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Ex0rzist
      
Beiträge: 550
Win XP Prof. Mandrake 10.0
D6
|
Verfasst: Mi 25.09.02 19:28
Such mal in der Onlinehelp nach Pos.
Das wird dir weiterhelfen.
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Mi 25.09.02 20:32
In welcher online hilfe? irgenwo gibts die delphi 6 hilfe auf deutsch kann sie aber nit mehr finden! Weist du wo man sie her bekommt und kannst du code posten von dem was ich gefragt hab ?
danke
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|