Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Funktion (https://www.delphipraxis.net/14199-problem-mit-funktion.html)

Schwabe 4. Jan 2004 17:22


Problem mit Funktion
 
Hallo erstmal :)

Also ich bin so ziemlicher Delphianfäger und hab ein Problem mit einer Funktion.

Ich habe 2 Eingabefelder:

Delphi-Quellcode:
EZahl, EHochzahl
( dazwischen steht: x^)

und einen Hinzufügbutton:

Delphi-Quellcode:
BHinzufuegen
Die Funktion:

Delphi-Quellcode:
function f(x: extended): extended;
begin
  result:= result + StrToFloat(z)*Power(x,StrToFloat(hz));
end;
Jetzt soll jedesmal wenn ich auf den Hinzufügbutton klick die Fubnktion aufaddiert werden. Also so

result:= result + StrToFloat(z)*Power(x,StrToFloat(hz));

Am Ende muss dann f(x) gezeichnet werden mit folgendem code:

Delphi-Quellcode:
procedure TForm1.Kurve_Zeichnen;

var i,j: integer;
    x,y: real;

begin
  with ISchaubild do
  begin
    i:=0;
    x:=(i-Ursprung.i)/Einheit;
    y:=f(x);
    j:=-round(y*Einheit)+Ursprung.j;
    Canvas.MoveTo(i,j);

    for i:=1 to width do
    begin
      Canvas.Pen.Color:=clblack;
      x:=(i-Ursprung.i)/Einheit;
      y:=f(x);
      j:=-round(y*Einheit)+Ursprung.j;
      Canvas.LineTo(i,j);
      end;
  end ;
end;
Es tut schon alles außer des mit der Funktion.

Wie kann ich das bewerkstelligen?

Hab schon vieles ausprobiert aber mir fehlen einfach die erforderlichen Kentnisse. Wäre nett wenn mir jemand helfen könnte!


Ps: Hoffe ihr könnt aus meiner Beschreibung das Problem erkennen:).

sakura 4. Jan 2004 17:27

Re: Problem mit Funktion
 
Bei jedem nächsten Aufruf der Funktion ist Result schon wieder vergessen. Du musst den alten Wert mit übergeben. Ausserdem, was wäre Result = Result + ... beim ersten Aufruf ;-)

Beim ersten Aufruf musst Du halt 0 übergeben.

[quote="Schwabe"]
Delphi-Quellcode:
function f(x, LastValue: extended): extended;
begin
  result:= LastValue + StrToFloat(z)*Power(x,StrToFloat(hz));
end;
...:cat:...

Schwabe 4. Jan 2004 17:42

Re: Problem mit Funktion
 
Vielen Dank für die schnelle Antwort:). Ich werds mal ausprobieren.

EDIT: Hm jetzt kommt immer bei der Kurve Zeichnen Procedure an der Stelle wo f(x ) steht Nicht genügend wirkliche parameter! An was liegt das?

Stanlay Hanks 4. Jan 2004 17:52

Re: Problem mit Funktion
 
Das liegt daran, dass die Prozedur jetzt nicht nur "x" sondern auch noch "LastValue" erwartet, sprich, du gibts einen Parameter zu wenig an.

Bsp:

Delphi-Quellcode:
f(10,15) //15 ist der 2. Parameter
Man liest sich, Stanlay :hi:

Schwabe 4. Jan 2004 18:09

Re: Problem mit Funktion
 
ok aber wie geb ich des dann richtig aus?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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