Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Array + Stringgrid !!!
gasgos - Mi 27.02.08 14:57
Titel: Array + Stringgrid !!!
Hallo,
hab folgendes Program zuschreiben und komme einfach nicht mehr weiter!
Aufgabenstellung:
Erstelen Sie ein Delphi-Pro., welches 100 Zufallszahlen im Bereich 1 - 250 erzeugt, diese Zufallszahlen auf einem Datenfeld abspeichert und in eine Stringgrid-Komponente ausgibt!Anschließend sollen alle
GERADEZaheln in eine 2. Stringgrid auf selbe stelle des 1.Grids angezeigt werden und die ungeraden ausgeblendet werden.
so soweit bin ich gekommen:
habe die Zufallszahlen erzeugt und in 2 StringGrids ausgeben lassen ... aber egal wie ich vor gehe kann ich die ungeradezahlen in den 2.Grid nicht ausblenden ... als Tipp solle mans mit DIV und MOD die Sache realisieren.
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: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids;
type TForm1 = class(TForm) Tabelle: TStringGrid; TabellePositiv: TStringGrid; procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1; daten : array [1..100] of integer; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); var spalte, zeile, i :integer; begin randomize; for i:=1 to 100 do daten[i]:=random (250)+1 ; i:=1; for spalte:=0 to 9 do for zeile:=0 to 9 do begin tabelle.Cells[spalte,zeile]:=inttostr(daten[i]); i:=i+1; end; randomize; for i:=1 to 100 do daten[i]:=random (250)+1 ; i:=1; for spalte:=0 to 9 do for zeile:=0 to 9 do begin TabellePositiv.Cells[spalte,zeile]:=inttostr(daten[i]); i:=i+1; end; end; end. |
bitte um Hilfe.
danke im voraus!
Kroko - Mi 27.02.08 15:01
(a) Wenn alle Zufallszahlen zwischen 1 und 250 liegen sollen, gibt es nur Positive!
(b) Randomize nur einmalig aufrufen
(c) Warum füllst Du Daten zweimal?
(d) MOD und DIV haben nichts mit negativ zu tun!
(e) LIES noch mal die Aufgabenstellung!
gasgos - Mi 27.02.08 15:03
mh wenn ich das laufen lasse erscheinen aber sowohl gerade alsoauch ungerade unzwar in beiden SGrids an den selben Stellen!
Kroko - Mi 27.02.08 15:05
EDIT 1. Beitrag
Wo Sollen die den herkommen
Random(250)*1 erzeugt eine Zufallszahl zwischen 1 und 250;
gasgos - Mi 27.02.08 15:19
also,
mein Lehrer hat das 2mal als übersicht aufspielen lassen ... und es funktioniert zu 100% leider mit DIV bzw MOD (ich weiß es auch nicht wie, aber das sollt ich mit hilfe von DIV bzw MOD schaffen!).
aber gut sollten wir/ich nicht drauf kommen werd ich nächste Woche die Lösung erhalten und hier Posten!
nochmal vllt eine kleine visualisierungs hilfe!
[url=
http://img521.imageshack.us/my.php?image=gridhb6.jpg]Hier geht es zum Screen[/url]
bloß in den unteren Grid sollen eben nur die Positivenzahlen erscheinen.
Kroko - Mi 27.02.08 16:05
Wo siehst Du denn im Screen negative Zahlen???
Das ist normalerweise die mit dem Minus davor, also -1; -2 ; -3 usw
gasgos - Mi 27.02.08 16:10
:( tut mir schreklich leid -.- ... habe durch lange probieren und überlegungen "gerade" mit "positiv" und "ungerade" mit "negativ" verwechselt :( ... also nochmal oben editiert!
hoffe das es jetzt klar ist was ich erreichen soll.
nochmals sry
Kroko - Mi 27.02.08 16:32
na ja denn,
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: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids;
type TForm1 = class(TForm) Tabelle: TStringGrid; TabellePositiv: TStringGrid; procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1; daten : array [1..100] of integer; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); var spalte, zeile, i :integer; begin randomize; for i:=1 to 100 do daten[i]:=random (250)+1 ; i:=1; for spalte:=0 to 9 do for zeile:=0 to 9 do begin tabelle.Cells[spalte,zeile]:=inttostr(daten[i]); if (Daten[I] mod 2)=0 then TabellePositiv.Cells[spalte,zeile]:=inttostr(daten[i]); i:=i+1; end; i:=1; end. |
gasgos - Mi 27.02.08 16:35
mh vielen dank,
mein fehler war das ich immer mit 10 modiert habe und auf der suche nach etwas war was das alles überprüft :( .
danke schön
Kroko - Mi 27.02.08 16:52
Bitte!
Ich habe es noch ein bisschen optimiert, :lol:
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!