Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit Werten in der Tabelle (https://www.delphipraxis.net/70082-problem-mit-werten-der-tabelle.html)

KosMottchen 24. Mai 2006 18:08


Problem mit Werten in der Tabelle
 
Liste der Anhänge anzeigen (Anzahl: 1)
huhu,

hm hab nen programm, wo ich die Dehung in m und die Energie in nm in eine Tablle schreiben lasse...

aber ich habe in der Zelle 0m den wert drin, der eigendlich bei der zelle mit 1m stehen müsste...

aknn mir da wer fix nen tipp geben, wie ich das ändern kann, sodass das passt?

hab die files mal hochgeladen... einfach ma die exe starten und dann seht ihr das denk ich mal ;)

danke schonmal für jede hilfe ;)

hier der link zur dpr und exe und co ;)

klick

hier der quelltext:


Code:
procedure TForm1.FormCreate(Sender: TObject);
begin

with Stringgrid1 Do begin

Cells[0,0]:='Dehnung in m';
Cells[1,0]:='Energie in Nm';
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
D,dehnung,Epot,intervall:real;
i,code:integer;
begin
VAL (form1.Edit1.Text,D,code);
VAL (form1.Edit2.Text,dehnung,code);
VAL (form1.Edit3.Text,intervall,code);

with stringgrid1 do begin

rowcount:=round(dehnung/intervall);

dehnung:=0;

for i:=1 to rowcount -1 do begin

cells[0,i]:=floattostr(dehnung);
dehnung:=dehnung+intervall;

Epot:=(1/2*D)*sqr(dehnung);
cells[1,i]:=floattostr(Epot);



end;
end;
end;

marabu 24. Mai 2006 19:33

Re: Problem mit Werten in der Tabelle
 
Auch huhu.

Verschiebe mal deine Intervallschaltung an das Ende der Schleife:

Delphi-Quellcode:
with StringGrid1 do
begin
  RowCount := Round(dehnung / intervall);
  dehnung := 0;
  for i := 1 to Pred(rowcount) do
  begin
    Cells[0, i] := FloatToStr(dehnung);
    // dehnung := dehnung + intervall;
    Epot := (1 / 2 * D) * Sqr(dehnung);
    Cells[1, i] := FloatToStr(Epot);
    dehnung := dehnung + intervall;
  end;
end;
Grüße vom marabu

KosMottchen 25. Mai 2006 00:21

Re: Problem mit Werten in der Tabelle
 
huhu,

vielen dank :)

es geht mit der variante...

ich versteh nur nicht ganz, wie das so sehr nen unterschied machen kann...

denn ich dachte, dass es logisch ist, wenn ich es an diese stelle setze.

mfg kos :)

marabu 25. Mai 2006 21:12

Re: Problem mit Werten in der Tabelle
 
Zitat:

Zitat von KosMottchen
ich versteh nur nicht ganz, wie das so sehr nen unterschied machen kann...

In deiner ursprünglichen Lösung verwendest du die Variable Dehnung sowohl vor als auch nach dem Neuberechnen dieser Variable. In deinem Fall führt das zu dem von dir beobachteten Fehler. Du möchtest ja bereits mit dem Startwert etwas machen, also darfst du ihn erst nach Abschluß aller Berechnungen (die ihn verwenden) auf einen anderen Wert setzen.

Gute Nacht

marabu


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