AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Werten in der Tabelle

Ein Thema von KosMottchen · begonnen am 24. Mai 2006 · letzter Beitrag vom 25. Mai 2006
Antwort Antwort
KosMottchen

Registriert seit: 4. Mär 2006
34 Beiträge
 
Delphi 7 Enterprise
 
#1

Problem mit Werten in der Tabelle

  Alt 24. Mai 2006, 19:08
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;
Angehängte Dateien
Dateityp: rar klausur__feder_-_for-schleife_402.rar (191,5 KB, 0x aufgerufen)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Problem mit Werten in der Tabelle

  Alt 24. Mai 2006, 20:33
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
  Mit Zitat antworten Zitat
KosMottchen

Registriert seit: 4. Mär 2006
34 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Problem mit Werten in der Tabelle

  Alt 25. Mai 2006, 01:21
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Problem mit Werten in der Tabelle

  Alt 25. Mai 2006, 22:12
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz