Entwickler-Ecke
Sonstiges (Delphi) - Zahlen in Stringgrid addieren klappt nicht (for-Schleife)
ridom - Di 21.09.10 18:52
Titel: Zahlen in Stringgrid addieren klappt nicht (for-Schleife)
Also es geht um folgendes wir haben in der Schule diese aufgabe bekommen die ich unten als bild gezeigt habe
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm1.Button1Click(Sender: TObject); var i,j,k, spaltens, spaltenm, zeilens:integer; begin randomize; for i := 1 to 10 do begin for j := 1 to 10 do begin rnd[i,j]:= random(99)+1; Stringgrid1.Cells[i,j]:=inttostr(rnd[i,j]); end; end;
for I := 1 to 10 do begin spaltens:= spaltens + rnd[i,1]; stringgrid1.Cells[i,11]:= inttostr(spaltens); end; |
Das Problem ist leider das ich nicht aus der Spalte 1 alle zahlen zusammen rechnen kann es kommt eine riesige zahl dabei raus und nicht das gewünschte ergebnis
Moderiert von
Martok: Delphi-Tags gesetzt.
Moderiert von
Narses: Titel geändert, war: "Delphi Schulaufgaben"
Jakob_Ullmann - Di 21.09.10 18:56
Das stringgrid1... und das end; solltest du vertauschen. Es ist besser, erst zu rechnen und dann auszugeben und nicht die Ausgabe ständig zu erneuern, wenn der User nicht gerade zusehen soll (was hier offenbar nicht der Fall ist).
Zu deinem Problem: spaltens muss initialisiert werden. Also spaltens := 0.
Und Randomize dient nur dazu, den Zufallsgenerator auf das aktuelle Datum / aktuelle Zeit zu initialisieren. Alle anderen Werte sind von allein zufällig (wenn du es gar nicht machst, hast du Zufallswerte, aber bei jedem Programmstart die selben). Mit anderen Worten: Das Randomize; sollte nur einmal aufgerufen werden, und zwar am Anfang des Programms.
ridom - Di 21.09.10 19:14
Nun kommt eine zahl raus die realistisch wirkt aber sie is immernoch falsch
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:
| type feldtyp = array [1..10,1..10] of integer; var feld, rnd: feldtyp;
procedure TForm1.Button1Click(Sender: TObject); var i,j,k, spaltens, spaltenm, zeilens:integer; begin randomize; spaltens:=0; spaltenm:=0; for j := 1 to 10 do begin for i := 1 to 10 do begin rnd[i,j]:= random(99)+1; Stringgrid1.Cells[i,j]:=inttostr(rnd[i,j]); end; end;
for I := 1 to 10 do begin spaltens:= spaltens + rnd[i,1];
end; stringgrid1.Cells[1,11]:= inttostr(spaltens); |
Georg08 - Di 21.09.10 19:22
Ich weiß, dass es nicht soo viel mit dem thema zu tun hat, aber bitte fpge die "[delphi]" tags hinzu... das macht alles etwas übersichtlicher besonders wegen der formatierung...
Danke
Jakob_Ullmann - Di 21.09.10 19:25
Du weißt, dass erst die x-, dann die y-Koordinate kommt?
ridom - Di 21.09.10 19:28
xD ach man ok dankeschön doofer fehler den ich immer wieder gerne mache jetzt klappts
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!