Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi maxValue bei mehrdimensionalen dynamischen Arrays (https://www.delphipraxis.net/200649-maxvalue-bei-mehrdimensionalen-dynamischen-arrays.html)

wendelin 12. Mai 2019 09:41

maxValue bei mehrdimensionalen dynamischen Arrays
 
Hallo,
ich versuche gerade bei einem 2-DIM. Array der Größe setlenght(40,2) nur für die Daten der 2. Dimension
mit min/maxValue die range zu bestimmen. geht dies überhaupt bei mehrdim. dynamischen Array's und wenn ja wie ?

vielen Dank für Eure Antwort,
Wendelin

EWeiss 12. Mai 2019 10:31

AW: maxValue bei mehrdimensionalen dynamischen Arrays
 
Delphi-Quellcode:
var
  x: Array of Array of Integer;
  firstMax, lastMin, lastMax: Integer;
begin
  SetLength(x, 40, 2);

  firstMax := High(x);
  lastMax := High(x[1]);
  lastMin := Low(x[1]);

end;
wenn es das ist was du meinst.

gruss

wendelin 12. Mai 2019 16:57

AW: maxValue bei mehrdimensionalen dynamischen Arrays
 
Hallo,

nein,nicht ganz. Ich wollte nur wissen, ob ich mit den funct. maxValue/minValue auch bei mehrdim. Array's
die numerischen Daten innerhalb einer Dim. nach min. oder max. bestimmen kann.
es gibt sicher mehrere Wege.
1.: die Daten einer Dim. in ein eindim. Array übertragen. Und dann maxValue('x')/minValue('x').
oder 2. z.B.
Delphi-Quellcode:
 For x := Low(MyNewIndikat_2D) to high(MyNewIndikat_2D) do
      begin
        If (MyNewIndikat_2D[x,1] > MyMax) then MyMax := MyNewIndikat_2D[x,1];
        If (MyNewIndikat_2D[x,1] < MyMin) then MyMin := MyNewIndikat_2D[x,1];
      end;
wobei der startwert von MyMax sehr klein sein sollte und von Mymin groß sein sollte.

danke nochmals
Wendelin

peterbelow 12. Mai 2019 18:07

AW: maxValue bei mehrdimensionalen dynamischen Arrays
 
Zitat:

Zitat von wendelin (Beitrag 1431998)
Hallo,
ich versuche gerade bei einem 2-DIM. Array der Größe setlenght(40,2) nur für die Daten der 2. Dimension
mit min/maxValue die range zu bestimmen. geht dies überhaupt bei mehrdim. dynamischen Array's und wenn ja wie ?

vielen Dank für Eure Antwort,
Wendelin

minValue(x[0]) etc. sollte funktionieren, allerdings vermutlich nicht ganz so, wie Du das haben willst. SetLength(40,2), um bei deinem Beispiel zu bleibern, würde einen array mit 40 slots allokieren, bei der jeder Slot einen array mit 2 Elementen enthält. D. h. die Elemente [0,0] und [0,1] liegen im Speicher direkt nebeneinander, die Elemente [0,0] und [1,0] aber nicht. Du kannst einen der 40 2-element arrays an minValue oder maxValue übergeben, das liefert Dir dann jeweils den kleineren bzw. größeren Wert dieser beiden Elemente. Was aber nicht geht, ist auf diese Weise den größten bzw. kleinesten Wert aus den Elementen [0,0], [1,0] ....[39,0] zu finden, da die keinen eindimensionalen Array bilden. Um das zu realisieren müßtest Du einen zweiten Array mit SetLength(2,40) initialisieren und dann die Elemente aus dem ersten Array ensprechend umsortiert in diesen kopieren.

wendelin 12. Mai 2019 18:20

AW: maxValue bei mehrdimensionalen dynamischen Arrays
 
danke peterbelow,
ich habe mir so etwas schon gedacht, was du geschrieben hast.
Dann muß ich also bei mehrdimensionalen Array's eine von den 2 Möglichkeiten nützen,
die ich beschrieben habe.

Wendelin


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