AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Falls Variable(n) vorhanden mache das sonst mache dies
Thema durchsuchen
Ansicht
Themen-Optionen

Falls Variable(n) vorhanden mache das sonst mache dies

Ein Thema von thknub · begonnen am 26. Apr 2008 · letzter Beitrag vom 30. Apr 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#21

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 12:23
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:
procedure TForm1.Button1Click(Sender: TObject);
var
  a : real;
begin
  form1.Edit3.Text:='xxx';
  a:=strtofloat(form1.Edit3.text);
end;
"xxx ist kein gültiger Gleitkommawert"

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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 12:26
Ich würde eher TryStrToFloat(), TMaskEdit oder Falscheingaben verhindern
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#23

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 12:50
Ein paar Tipps zu deinem Code:

if a>0 then bo1 := True else bo1 := False; ist äquivalent zu
bol := a>0; Ausserdem lässt sich
if bo2 and bo4 and bo5 = True then ersetzen durch
if bo2 and bo4 and bo5 then ansonsten ist es dank der "intuitiven Benennung" deiner Variablen praktisch unmöglich dir zu sagen, was da falsch ist

[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
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
thknub

Registriert seit: 25. Apr 2008
12 Beiträge
 
Turbo Delphi für Win32
 
#24

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 15:50
@ p80286

Sie sind mi 0 vorbelegt.

@ glkgereon

Zitat:
Allgemein:
StrToFloat wenn "Edit1" da steht funktioniert nicht
und durch null teilen wird auch eher ungern gesehen
Meinst du im Feld edit1 steht edit1? Ich hab überall 0 drin stehen...
Wo teile ich durch null?
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#25

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 17:08
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.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
thknub

Registriert seit: 25. Apr 2008
12 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 17:30
Wenn ich F7 drück kommt das:

http://img514.imageshack.us/img514/346/dfgla6.png

Bei F8 ist die nächste Zeile bordeauxrot markiert, also Application.Initialize;
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#27

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 17:32
Dann drück solange F7, bis dass du an der richtigen Stelle bist
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#28

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 17:52
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:
{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;
Da wird arccos wohl mit den falschen Werten gefüttert.
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
  Mit Zitat antworten Zitat
thknub

Registriert seit: 25. Apr 2008
12 Beiträge
 
Turbo Delphi für Win32
 
#29

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 18:43
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...
  Mit Zitat antworten Zitat
thknub

Registriert seit: 25. Apr 2008
12 Beiträge
 
Turbo Delphi für Win32
 
#30

Re: Falls Variable(n) vorhanden mache das sonst mache dies

  Alt 29. Apr 2008, 18:46
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz