Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 2 dimensionale sets? (https://www.delphipraxis.net/110330-2-dimensionale-sets.html)

alzaimar 16. Mär 2008 20:01

Re: 2 dimensionale sets?
 
Zitat:

Zitat von 3_of_8
Weil du "Fließkommazahlen" geschrieben hast, was falsch ist.

Echt? Also, ich kenn das seit meinem Studium, in meinen Büchern als Fließkomma, Google spuckt fast so viele Artikel zu 'Fließkomma' aus, wie zu 'Gleitkomma'. Ich denke mal, ich schließe mich den fast 50% Dummen an, die eine falsche Ausdrucksweise verwenden.

Zitat:

Zitat von 3_of_8
Und der Compiler kann die Obergrenze ja leicht ermitteln, indem er sich das größte Element ansieht.

Äh, woher weiss er das? Das größte Element, das die Menge enthalten wird, ist zur Kompilierzeit nichtbekannt. Wie groß soll der Speicherbereich werden? Oder meinst Du allen Ernstes, das Delphi sowas unterstützen sollte?
Delphi-Quellcode:
Var
  X : Set Of Int64; // Das wird ganz schön groß.
  Y : Set Of TObject; // Das auch.

3_of_8 16. Mär 2008 20:07

Re: 2 dimensionale sets?
 
Nein, tue ich nicht. TObject ist kein Ordinaltyp, Int64 auch nicht (zumindest nicht in 32 Bit-Delphi). Spätestens bei Cardinal sollte Schluss sein, das sind ja bereits 128 MB pro Set. Aber zumindest Words sollten drin sein.

Aber der Compiler kann definitiv die Obergrenze sehen, in dem Fall ist es zum Beispiel high(Cardinal).

Apollonius 16. Mär 2008 20:13

Re: 2 dimensionale sets?
 
Das sehe ich auch so. Die Koordinaten-Tupel müsste man eben in den entsprechenden Ordinaltyp casten, wie ich bereits in Post 12 vorgeschlagen habe.

3_of_8 16. Mär 2008 20:16

Re: 2 dimensionale sets?
 
Was dann aber zu unnötigem Speicherverbrauch führen kann. Eine Hashset-Implementation oder eine sortierte Liste von Sets oder sogar eine sortierte Liste von getaggten, sortierten Listen von Integern könnte hier sinnvoller sein. Dann kann man immerhin in logarithmischer Zeit nach Koordinaten suchen.

alzaimar 16. Mär 2008 20:19

Re: 2 dimensionale sets?
 
@3_of_8, @Apollonius:Meint ihr allen Ernstes, daß ein 128MB großer Basistyp in einer seriösen Programmiersprache etwas zu suchen hat? Aber ich sehe gerade, ihr widmet euch wieder dem Thema, bei dem mit 3_of_8's Vorschlag eigentlich die optimale Lösung vorgeschlagen wurde. Man kann ja die X-Koordinate in den höherwertigen 16/32-bit ablegen, die Y-Koordinate in den unteren. Dann kann man aufs Casten verzichten und mappt mit einfachen MOD in die Hashmap.

3_of_8 16. Mär 2008 20:24

Re: 2 dimensionale sets?
 
Wenn array[Cardinal] of <Typ> geht, warum nicht set of Cardinal? Letzteres ist sogar kleiner.

alzaimar 16. Mär 2008 20:47

Re: 2 dimensionale sets?
 
@3_of_8: Gähn.

3_of_8 16. Mär 2008 20:53

Re: 2 dimensionale sets?
 
Was heißt da gähn? Nach deiner Begründung dürfte array[Cardinal] ja auch nicht gehen und der Compiler müsste da dann auch eine Obergrenze setzen.

alzaimar 16. Mär 2008 21:17

Re: 2 dimensionale sets?
 
Zitat:

Zitat von 3_of_8
Was heißt da gähn? Nach deiner Begründung dürfte array[Cardinal] ja auch nicht gehen und der Compiler müsste da dann auch eine Obergrenze setzen.

'Gähn' ist deutsch und eine Lautmalerei. Ich wollte damit zum Ausdruck bringen, das mich deine Rechthaberei langweilt.

Von mir aus ist 'SET OF CARDINAL' ein wichtiger Datentyp, der unverständlicherweise in ObjectPascal und allen anderen Programmiersprachen nicht implementiert wurde, obwohl er durchaus abgebildet werden könnte. So wie 128-stelliges BCD, Ganzzahlen mit beliebiger Stellenanzahl, Tristate Logic usw. Allerdings bezweifle ich, das die Person, die dieses Sprachfeature implementiert, am nächsten Tag noch seinen Job innhalten dürfte.

Bei meinen Einwänden bezüglich einer effizienten Umsetzung eines Compilers bin ich nicht davon ausgegangen, das jemand allen Ernstes ein 128MB-Monster im Speicher halten würde, wo man so etwas mit sparse sets wesentlich komprimierter darstellen könnte.

Noch Einwände, bei denen ich nicht einschlafe?

dajuhsa 17. Mär 2008 23:45

Re: 2 dimensionale sets?
 
ich will mich ja in eure Diskussion nicht einmischen, aber hier geht es wohl nicht mehr um mich, oder? ^^"


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz