| Autor |
Beitrag |
NoEon
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Fr 07.03.03 14:10
Hallo,
mein Problem,
ich habe folgende Formel in Excel =tan(F25*pi/(2*180))*A27*2)*0,85
F25 und A27 sind beliebige Zahlen (real) die ich mir in Delphi durch edit Felder hole. wobei F25 eine Grad Angabe ist.
mein Lösungsansatz ist jetzt gewesen;
z1:=((F25*pi/(2*180))*A27*2);
ergz1:=sin(z1)/cos(z1)*0,85;
label44.caption:=FloatToStrF(ergz1, ffFixed, 18, 2);
tan = sin(x)/cos(x) das stimmt doch, die uses math ist auch drinne.
Danke für die Hilfe!
NoEon
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Fr 07.03.03 14:59
Hi,
bedenke bitte, dass Sinux & Cosinus & Tangens - Formeln in Delphi das Ergebnis immer im Bogenmaß (RAD) zurückgeben. Dieses ist ein anderer Wert, als wenn Du es in Excel oder auf einem Taschenrechner eingibst. Ich weiß nur nichtmehr, wie man den Wert wieder umrechnet.
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Fr 07.03.03 15:34
rad =pi*grad/180=0.01745*grad
grad=180*rad/pi=57.296 * rad
so sollte die umrechnung sein. Das Funktioniert auch aber... hier weiss ich nicht weiter.. es sind einfach immer andere Ergebnisse.
Mist
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 07.03.03 15:48
Könntest Du evtl. mal ein paar Beispieleingaben und die Ergebnisse aus Delphi und aus Excel posten? Vielleicht können wir Dir dann besser helfen!
Ist die Ergebniszelle in Excel oder eine der Eingabezellen auf irgendeine Art formatiert (Zahlenformat, etc.)? Vielleicht rechnet Excel da noch irgendwan um, was nicht in der Formel steht.
MfG,
Peter
P.S.: Bei z1 kannst Du eine 2 kürzen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Fr 07.03.03 15:57
Zellen sind erstmal alle Standard Formatiert.
=(TAN(F25*3,14/(2*180))*A27*2)*0,85
=(tang(55*3,14/(2*180))*350*2)*0,85
=309,55 das kommt in Excel dabei raus!
nur so kann ich die Formel nicht in Delphi übernehmen.
das was da setht muss ich auch in Delphi rausbekommen!
// MOM Feierabend mach gleich zu Hause weiter, ca. 20min danke//
Danke erstmal bis hier!
NoEon
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Fr 07.03.03 16:32
so....
in Delphi gibt es ja nun die TAN Funktion nicht, die soll sich ergeben aus sin(x)/cos(x).... aber mehr kann ich damit auch nicht anfangen.
wenn noch was gefragt ist.. sagen!
|
|
bis11
      
Beiträge: 1247
Erhaltene Danke: 2
Apple Mac OSX 10.11
|
Verfasst: Fr 07.03.03 17:51
Dein Fehler liegt in F25 und A27. Trage an der stelle mal die Zahlen aus Deiner Tabelle ein, dann sollte das Ergebnis rauskommen. Probiere mal folgende Zeilen Code :
Quelltext 1: 2: 3:
| z1:=((StrToFloat(edit1.text)*pi/(2*180))*StrToFloat(edit2.text)*2); ergz1:=sin(z1)/cos(z1)*0,85; label44.caption:=FloatToStrF(ergz1, ffFixed, 18, 2); |
Einfach noch zwei Edit-Felder dazu und dann müsste es so funktionieren.
(++Achtung++ Nicht getestet ++Achtung++)
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Fr 07.03.03 19:00
| Zitat: | | =(TAN(F25*3,14/(2*180))*A27*2)*0,85 |
Mit dieser Formel (in Delphi kopiert) und mit der Unit Math eingebungen, funktioniert es. Der Quelltext sieht so aus:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.Button1Click(Sender: TObject); VAR ergz1, F25, A27 : Real; begin F25:=StrToFloat(edit1.text); A27:=StrToFloat(edit2.text); ergz1:=(TAN(F25*3.14/(2*180))*A27*2)*0.85; label44.caption:=FloatToStrF(ergz1, ffFixed, 18, 2); end; |
Es kommt das heraus, was auch in Excel herauskommt. Ich tippe auf falsch gesetzte Klammern. Habe ich jetzt nicht nachgeguckt.
MfG,
Peter
P.S.: Wenn Du das ganze ohne die Unit Math machen willst, dann würde ich mir eine eigene Function tan definieren. Dann bleibt das ganze schön übersichtlich und Du kannst auch die undefinierten Stellen abfangen.
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
NoEon 
      
Beiträge: 138
win9x, win 2000, win xp, linux 8.0
|
Verfasst: Mo 10.03.03 13:14
Hallo Schoene neue Woche. Danke für die letzet Antwort Peter Lustig.
Interessant das es funktioniert! Aber ok so soll es sein.
Frohes Schaffen
MfG
NoEon
|
|