Autor Beitrag
Schwabe
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 04.01.04 14:50 
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:

ausblenden Delphi-Quelltext
1:
BHinzufuegen					


Die Funktion:

ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 48



BeitragVerfasst: Mi 18.02.04 08:28 
Hi

Also auf die Schnelle:
Prozeduren werden so deklariert:

ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 329

Win XP
D6
BeitragVerfasst: Mi 18.02.04 10:36 
hallo,
die funktion hat erstmal keinen fehler aber etwas unnützes:

ausblenden 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