Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit einer Funktion


Schwabe - So 04.01.04 14:50
Titel: Problem mit einer Funktion
Hallo erstmal :)

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

Ich habe 2 Eingabefelder:

EZahl, EHochzahl ( dazwischen steht: x^)

und einen Hinzufügbutton:


Delphi-Quelltext
1:
BHinzufuegen                    


Die Funktion:


Delphi-Quelltext
1:
2:
3:
4:
5:
function f(x: extended): extended;
begin
  result:= result;
  result:= result + StrToFloat(z)*Power(x,StrToFloat(hz));
end;


Jetzt soll jedesmal wenn ich auf den Hinzufügbutton klick zur untenstehenden Funktion die Zahlen übergeben werden und gegebenenfals, wenn schoneinmal der button benutzt wurde die Zahlen addiert werden.

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


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
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:).

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt


smilie128 - Mi 18.02.04 08:28

Hi

Also auf die Schnelle:
Prozeduren werden so deklariert:


Quelltext
1:
2:
3:
4:
5:
6:
procedure name(x : integer);

procedure TForm1.name(x : integer);
begin
  // hier der auszuführende Code
end;


Funktionen so:

Quelltext
1:
2:
3:
4:
5:
6:
7:
function name(x : integer): integer;

function TForm1.name(x : integer): integer;
begin
  // hier der auszuführende Code
  result := rückgabewert;
end;


Wobei in den Klammern die zu übergebenden Werte stehen (bei mehreren mit ; trennen) und hinter der Klammer
der Rückgabewert

Vielleicht hilfts ja schon.

Gruß
smilie128


rokdd - Mi 18.02.04 10:36

hallo,
die funktion hat erstmal keinen fehler aber etwas unnützes:


Delphi-Quelltext
1:
result:=result                    


Du hast doch noch kein Ergebnis, außerdem wirst du selbr einsehen dass einer variable sich wieder selber zuweist ziemlich idotisch ist, oder?
Ich würde eine variablen benutzen, auf welche die ganze form drauf zugreifen kann.
Die setzt du beim starten auf null. dann addierst du bei jedem rechenvorgang dann die var auf sich selber hinzu.
das problem ist dass result beim starten der funktion nicht mehr denn wert von vorher hat.

Vielleicht solltest du auch mal schreiben was überhaupt dein Problem ist: Funzt nicht(sehr wahrscheinlich,aber auch was nicht geht!), Fehler, Debuggerergebnisse...

Rokdd