![]() |
problem mit for-schleife
hallo ,
ich habe folgendes problem: ich möchte die y-werte der funktion f ausrechnen ( f(x)=x*x ). nun hab ich mir gedacht ich mache dies einfach mit einer for-schleife z.b. von 1 bis 5. und dann wollte immer wenn eine zahl von 1 bis 5 eingesetzt wird , den errechneten wert ausgeben haben. der code sieht nun so aus :
Delphi-Quellcode:
bei der rechnung kommt allerding 25 raus und die werte werden natürlich nich enzelt ausgeben.. wenn mir da jemand weiterhelfen könnte wär das spitze !! danke
function f(x: extended): extended;
begin f:= x*x end; [...] procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i:=1 to 5 do x:= f(i); Label4.Caption := FloatToStr(x); end; |
Re: problem mit for-schleife
Der wert des labels wird immer wieder überschrieben nimm lieber ein Memo zur Ausgabe.
Delphi-Quellcode:
...
for i:=1 to 5 do x:= f(i); Memo.Lines.Add( FloatToStr(x)); end; |
Re: problem mit for-schleife
Delphi-Quellcode:
1. Siehe Quelltext
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; begin for i:=1 to 5 do x:= f(i); Label4.Caption := FloatToStr(x); // Diese Zeile wird NICHT wiederholt ! end; 2. Siehe Quelltext:
Delphi-Quellcode:
1+2 =>
Label4.Caption := Label4.Caption + 'f(' + IntToStr(i) + ')= ' + FloatToStr(x) + #13#10;
Delphi-Quellcode:
So würd ichs eventuell machen :)
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; begin for i:=1 to 5 do begin x:= f(i); Label4.Caption := Label4.Caption + 'f(' + IntToStr(i) + ')= ' + FloatToStr(x) + #13#10; end; end; Gruß Neutral General |
Re: problem mit for-schleife
Delphi-Quellcode:
ist falsch. Du kannst dir ein Array erstellen. Beispiel:
for i:=1 to 5 do
x:= f(i);
Delphi-Quellcode:
Hat Vorteile. Dann noch
var Zahlen: Array of Integer // oder z.B Real
begin SetLength(Zahlen, 4) for i:=1 to 5 do Zahlen[i] := x;
Delphi-Quellcode:
Edit1.Text := 'dein Text'
for i := 1 to 5 do Edit1.Text := Edit1.Text + ' ' + IntToStr(f[i]); |
Re: problem mit for-schleife
@mkinzler: Dann aber das begin-end nicht vergessen:
Delphi-Quellcode:
Mit dem Label ginge es auch, dann jedoch so in der Art:
for ...
begin // ... end;
Delphi-Quellcode:
Label1.Caption := Label1.Caption + ', ' + FloatToStr(x);
Edit: @Nils: Wieso ein Array? "f" ist der Name der FUnktion. |
Re: problem mit for-schleife
Richtig. Ist auch logisch dass da 25 raus kommt. Weil der letzte Aufruf von f mit dem Parameter 5 geschieht. Und 5 x 5 = 25 ;-)
|
Re: problem mit for-schleife
Zitat:
|
Re: problem mit for-schleife
danke schon mal dafür !!
dann hab ich noch zwei fragen: 1) kann man die laufvariable i auch als real machen ? klappt nämlich irgendwie nich und 2) kann man die schritt weite um die i erhöht wird auch auf 0,5 runter setzen oder 1,5 erhöhen ? |
Re: problem mit for-schleife
Zitat:
Zitat:
|
Re: problem mit for-schleife
for variablen müssen einfache lokale integer variablen sein
wie wäre es mit
Delphi-Quellcode:
vari:Extended;
i:=-4; while i < 4 do begin inc(i,0.5); \\... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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