AGB  ·  Datenschutz  ·  Impressum  







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

Wertetafel einer beliebigen Funktion

Ein Thema von Melli012345 · begonnen am 9. Jun 2009 · letzter Beitrag vom 10. Jun 2009
Antwort Antwort
Melli012345

Registriert seit: 9. Jun 2009
6 Beiträge
 
#1

Wertetafel einer beliebigen Funktion

  Alt 9. Jun 2009, 20:38
Folgende Aufgabe
Die Wertetafel einer beliebigen Funktion soll ausgegeben werden. Zur Wertetafel soll auch die Schrittweite wählbar sein.

Mein Programm funktioniert, wenn meine Funktion z.B. f(x) = 1 oder so heißt.
Aber sobald ich die Variable "x" in das Editfenster eingebe, kommt eine Fehlermeldung "x ist kein gültiger Fließkommawert"...
Bin nun schon seid ner Stunde am rumprobieren...daher sieht mein Quelltext mittlerweile auch bisschen komisch aus und es geht sicher viel einfacher.
Aber das Problem hab ich nicht bewältigt.
Weiß jemand, woran es liegt?

Delphi-Quellcode:
procedure TForm1.WertetafelClick(Sender: TObject);
 var
  x1, x2, x, h, y2: Real;
  x3, y3 : extended;
  y1 : string;
begin
 h := strtofloat(edit2.text);
 x2 := strtofloat(edit4.text);
 x1 := strtofloat(edit3.text);
 x := x1;
 listbox1.Items.add(' x f(x) ');
 y1 := edit1.text;
   y2 := strtofloat(y1);
  while x < x2 do
  begin
   x3 := round(x);
   y3 := round(y2);
   listbox1.Items.add(Format('%5.2f',[x3])+ ' ' + Format('%5.2f',[y3]));
   x := x+h;
  end;
end;

end.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Wertetafel einer beliebigen Funktion

  Alt 9. Jun 2009, 20:50
Du gehst davon aus, dass der Benutzer in das Edit nur Zahlen eingibt. Er kann aber auch Buchstaben eingeben, und aus Buchstaben kann StrToFloat() keine Zahl machen, darum die Fehlermeldung.
Lösungen:

1) Den Fehler wenn er auftritt abfangen:
Delphi-Quellcode:
try
  h := strtofloat(edit2.text);
  x2 := strtofloat(edit4.text);
  x1 := strtofloat(edit3.text);
except
  showmessage('Bitte nur Zahlen eingeben!');
end;
Das ist aber nicht empfehlenswert... besser ist:
Delphi-Quellcode:
if not TryStrToFloat(edit2.text, h) then
  showmessage('Bitte nur Zahlen eingeben!');
Und am besten ist dem Benutzer keine Falscheingaben zu erlauben:
Delphi-Quellcode:
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', ',', #8]) then
    key := #0;
end;
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Wertetafel einer beliebigen Funktion

  Alt 9. Jun 2009, 20:56
Zitat von Melli012345:
Mein Programm funktioniert, wenn meine Funktion z.B. f(x) = 1 oder so heißt.
Aber sobald ich die Variable "x" in das Editfenster eingebe, kommt eine Fehlermeldung "x ist kein gültiger Fließkommawert"...
FloatToStr nimmt nur eine Zahl entgegen, keine Formeln. Was du brauchst, ist ein Mathe-Parser.
  Mit Zitat antworten Zitat
Melli012345

Registriert seit: 9. Jun 2009
6 Beiträge
 
#4

Re: Wertetafel einer beliebigen Funktion

  Alt 9. Jun 2009, 21:01
dankeschön für eure Antworten

@NamenLozer: ah, genau^^hatte nämlich gegoogelt, da ist das auch als Lösungsweg angegeben worden..allerdings konnte ich nicht (für mich verständlich) sehen, wie ich den genau einsetze, denn ich hab noch nie damit gearbeitet...kannst du mir da weiterhelfen?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Wertetafel einer beliebigen Funktion

  Alt 9. Jun 2009, 21:24
Zitat von Melli012345:
wie ich den genau einsetze, denn ich hab noch nie damit gearbeitet...kannst du mir da weiterhelfen?
Es gibt nicht "den" Matheparser - es gibt viele verschiedene, für verschiedene Bedürfnisse. Das reicht dann von einer einzigen recht kurzen Funktion zu riesigen, hochkomplexen Bibliotheken. Für deine Zwecke sollte die eifnachste Variante reichen Aber über Google sollte sich schon was passendes finden lassen.

Ich habe selbst noch nie sowas gebraucht, aber wenn du ne konkrete Frage hast, helfe ich dir gern.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Wertetafel einer beliebigen Funktion

  Alt 10. Jun 2009, 05:35
Vieleicht hilft das weiter: Tutorial Funktionsparser

Uli
  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 23:44 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