Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi 2-dimensionales dynamisches Array (https://www.delphipraxis.net/167529-2-dimensionales-dynamisches-array.html)

kaka77 3. Apr 2012 20:23

2-dimensionales dynamisches Array
 
Hallo zusammen!

folgendes szenario:

ich habe ein dynamisches array, dessen elemente wiederum dynamische arrays sind, dessen elemente sind integer werte.
(TMengen = array of array of integer;)

eine procedure soll abhängig vom übergebenen parameter diesen in das "richtige" array speichern

als beispiel:
Delphi-Quellcode:
TMengen   = array of array of integer;
mengen: TMengen;

procedure test1(zahl:integer);
var x,y:integer;
begin
  for y:=0 to high(mengen) do begin
    for x:=0 to high(mengen[y]) do begin
      if mengen[x, y] = zahl then begin
        setlength(mengen[y], length(mengen[y])+1);
        mengen[y, high(mengen[y])] := zahl;
        exit;
      end;
    end;
  end;
  setlength(mengen, length(mengen)+1);
  setlength(mengen[high(mengen)], 1);
  mengen[high(mengen), 1]:= zahl;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  randomize;
  setlength(mengen, 1);
  setlength(mengen[0], 1);
  for i:=0 to 100 do
    test1(random(10));

  for i:=0 to high(mengen[0]) do
    listbox1.Items.add(inttostr(mengen[0, i]));
end;
also zB. wird eine zufallszahl erzeugt, diese soll im array gespeichert werden, unzwar so, dass wenn sie schonmal vorkam, also in der menge ist, in die gleiche menge eingefügt wird, so dass man zum schluss zb anhand der länge der einzelnen teilmengen feststellen kann, wie oft die jeweilige zufallszahl gefallen ist.

sagt mir jetzt nicht wie blöd das ist, es ist nur ein beipiel

es geht um die verwendung mehrdimensionaler dynamischer arrays



das problem ist, dass das programm nicht fehlerfrei läuft, ich bin mir nicht sicher, ob es an meiner verwendung von -setlength- liegt


bin für jede hilfe dankbar

mkinzler 3. Apr 2012 21:38

AW: 2-dimensionales dynamisches Array
 
Warum spiecherst du nicht einfach die Zahl?
High() und Low() bilden ein gutes Team; d.h. ich würde beide für die Grenzen verwenden. Dann kann der Code z.B. auch für statische Arrays verwendet werden.

Uwe Raabe 3. Apr 2012 23:03

AW: 2-dimensionales dynamisches Array
 
Zitat:

Zitat von kaka77 (Beitrag 1160033)
Delphi-Quellcode:
      if mengen[x, y] = zahl then begin

Hier sind x und y vertauscht!


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