AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Werte Tabelle Schleifen-Fehler

Ein Thema von eugene222 · begonnen am 26. Mär 2011 · letzter Beitrag vom 26. Mär 2011
Antwort Antwort
eugene222

Registriert seit: 24. Mär 2011
11 Beiträge
 
#1

Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 17:04
Delphi-Version: 5
Hallo, ich habe die Aufgabe gekriegt eine Werte Tabelle für die Funktion f(x) = sin(x) * x² + 3/x.
Ich habe 3 Editfelder in die der Startwert, Endwert und die Schrittzahl.
Ich bin auch eig. schon fast fertig. Es funktioniert eig. alles, aber sobald man für die Schrittzahl einen etwas kleineren Wert nimmt(Wenn f_schritt < 0.5), läuft die Schleife Endloss weiter. Unser Lehrer hat aber gesagt, dass man für die Schrittzahl auch Float Werte nehmen kann.
Ich finde den Fehler einfach nicht, da das Program so ohne Fehler läuft.

Rechnung:
Code:
FUNCTION Tform1.Rechnung;
 BEGIN
  me_x.lines.Add(FloatToStr(f_start));
  Result := Sin(f_start)*sqr(f_start)+(3/f_start);
  me_y.Lines.Add(FloatToStr(Result));
 END;
Click Prozedur:
Code:
//Button-Click Prozedur
procedure TForm1.b_goClick(Sender: TObject);
 BEGIN
   //Die Editfelder den Variablen zuweisen
   f_start := StrToFloat(ed_start.Text);
   f_end := StrToFloat(ed_end.Text);
   f_schritt := StrToFloat(ed_Schritt.Text);
   me_x.Lines.Clear;
   me_y.Lines.Clear;
  ///////////////////////////////////////
  IF f_start<f_end THEN
   BEGIN
    repeat
     Rechnung;
     f_start := f_start + f_schritt;
    until f_start=f_end;
   END
  ELSE IF f_start>f_end THEN
   BEGIN
    repeat
     Rechnung;
     f_start := f_start - f_schritt;
    until f_start=f_end;
   END;
  Rechnung;
 END;
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#2

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 17:33
Unser Lehrer hat aber gesagt, dass man für die Schrittzahl auch Float Werte nehmen kann.
Hat euer Lehrer denn nicht auch gesagt, daß man Floatwerte niemals auf Gleichheit testen soll? Wegen der Ungenauigkeiten sind solche Vergleiche nicht zuverlässig. In deinen until Bedingungen solltest du stattdessn <= bzw. >= verwenden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
eugene222

Registriert seit: 24. Mär 2011
11 Beiträge
 
#3

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 17:45
Eigentlich meinte Ich mit dem Satz, dass unser Leher meinte, dass die Schrittzahl ein Floatwert sein muss.

*edit*
Es funktioniert, vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 17:53
BTW
Delphi-Quellcode:
If Foo < EndWert then
  repeat
  ...
  until Foo >= EndWert;
Ist eigentlich
Delphi-Quellcode:
While Foo < EndWert do
  begin
  ...
  end;
Edit: korrigiert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (26. Mär 2011 um 19:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#5

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 18:27
Sicher? So hat die Repeat-Until-Schleife nur 1 Durchlauf! Das würde auch ein einfaches IF erledigen.
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix (26. Mär 2011 um 18:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 19:43
Hast ja recht darum habe ich es auch schon geändert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#7

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 19:48
BTW
Delphi-Quellcode:
If Foo < EndWert then
  repeat
  ...
  until Foo >= EndWert;
Ist eigentlich
Delphi-Quellcode:
While Not Foo < EndWert do
  begin
  end;
Edit: korrigiert
Du solltest das, was du da schreibst, nochmal gründlich überdenken! Jetzt stimmt nämlich fast gar nichts mehr...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 19:56
Oh Mann, ich muss das Zeug mal untersuchen lassen, was ich heute geraucht habe.

Jetzt sollte es aber passen (i hope)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#9

AW: Werte Tabelle Schleifen-Fehler

  Alt 26. Mär 2011, 21:04

Das Zeug würde ich auch gerne einmal testen
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix (26. Mär 2011 um 21:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:35 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