![]() |
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Hallo Thknub,
hast Du es mal mit dem Debugger versucht? mit [F7] und [F8] geht einem manchmal ein ganzer Kronleuchter auf. Bei mir erhalte ich bei folgendem Sourcecode:
Delphi-Quellcode:
"xxx ist kein gültiger Gleitkommawert"
procedure TForm1.Button1Click(Sender: TObject);
var a : real; begin form1.Edit3.Text:='xxx'; a:=strtofloat(form1.Edit3.text); end; Da hat er recht! Du solltest deine Eingabetextfelder zumindestens mit "0.0" vorbelegen! Buchstaben und andere Fehleingaben mußt Du dann auch noch herausklauben. Viel Spaß K-H |
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Ich würde eher TryStrToFloat(), TMaskEdit oder Falscheingaben verhindern
|
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Ein paar Tipps zu deinem Code:
Delphi-Quellcode:
ist äquivalent zu
if a>0 then bo1 := True else bo1 := False;
Delphi-Quellcode:
Ausserdem lässt sich
bol := a>0;
Delphi-Quellcode:
ersetzen durch
if bo2 and bo4 and bo5 = True then
Delphi-Quellcode:
ansonsten ist es dank der "intuitiven Benennung" deiner Variablen praktisch unmöglich dir zu sagen, was da falsch ist :?
if bo2 and bo4 and bo5 then
[Edit] Achso, es wäre sehr praktisch zu wissen, wo genau der Fehler auftritt... Allgemein: StrToFloat wenn "Edit1" da steht funktioniert nicht und durch null teilen wird auch eher ungern gesehen :wink: |
Re: Falls Variable(n) vorhanden mache das sonst mache dies
@ p80286
Sie sind mi 0 vorbelegt. @ glkgereon Zitat:
Wo teile ich durch null? |
Re: Falls Variable(n) vorhanden mache das sonst mache dies
ich glaub, du solltest die Formeln zur Winkelberechnung noch mal prüfen. Übrigens: Der Debugger würde dir m.E. sehr gut weiterhelfen, die Fehlerstelle zu finden.
|
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Wenn ich F7 drück kommt das:
![]() Bei F8 ist die nächste Zeile bordeauxrot markiert, also
Delphi-Quellcode:
Application.Initialize;
|
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Dann drück solange F7, bis dass du an der richtigen Stelle bist :wink:
|
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Hallo thknub,
ich hab mir die Freiheit genommen und Deinen Source mal ausprobiert, da ich es nicht so mit der Mathematik habe und darum nicht so ganz verstanden habe was das Programm genau machen soll.
Code:
Da wird arccos wohl mit den falschen Werten gefüttert.
{Berechnung Winkel Gamma}
if bo1 and bo2 and bo3 = True then b2 := h*arccos(sqr(c)/(sqr(a)+sqr(b)-2*a*b)) else b2 := 0; wenn a=11 und b=22 und c=33 dann ist der Inhalt der Klammer =9 und das mag arccos nicht. Schau mal in die Hilfe. viel Spaß noch K-H |
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Das Programm ist dazu gedacht mathematische Aufgaben zu lösen und da wird es garantiert keine ernstgemeinte Aufgabe geben, die diese Werte vorgibt, da die Werte kein Dreieck ergeben, sondern einen Strich...
|
Re: Falls Variable(n) vorhanden mache das sonst mache dies
Die mathematische Grundlage dieser Formel ist der Cosinussatz: c²=a²+b²-2*a*b*cos(Gamma). Ich denke doch, dass ich richtig umgestellt habe...
edit: Ich hab falsch umgestellt. Es müsste sein: c²=a²+b²-2*a*b*Cos(Gamma) | /(2ab) c²/(2ab)=(a²+b²)/(2ab)+Cos(Gamma) | -(a²+b²)/(2ab) (c²-a²-b²)/(2ab)=Cos(Gamma) | arccos Gamma = arccos((c²-a²-b²)/(2ab)) So richtig? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz