Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Aus einem Set den ersten Eintrag extrahieren (https://www.delphipraxis.net/21795-aus-einem-set-den-ersten-eintrag-extrahieren.html)

fred.reichbier 8. Mai 2004 10:44


Aus einem Set den ersten Eintrag extrahieren
 
Hallo Leute!
Ich arbeite gerade mit Sets (set of ...).
Und da wollte ich fragen, ob
jemand weiß, wie ich den z.B. 1. Eintrag
aus dem Set kriegen kann.
(also, ich meine so ein set:
Delphi-Quellcode:
type
TCD = (t,c,d);
TSetCD = set of TCD;
)

Delphi-Quellcode:
var p: TCD; x: TSetCD;
x := [t,c];
p := x[0];
funktioniert nicht.
Hat jemand ne Idee?
Schon mal Danke,
fred.

Hansa 8. Mai 2004 11:41

Re: Aus einem Set den ersten Eintrag extrahieren
 
Wie Du bemerkt hast, ohne es zu merken :mrgreen: : dafür nimmt man besser ein Array. Bei Sets gibts eigentlich nur den Operator IN oder noch + und -.

Jens Schumann 8. Mai 2004 12:00

Re: Aus einem Set den ersten Eintrag extrahieren
 
Hallo,
Typen mit set also set of irgendwas sind Mengentypen. In einer Menge gibt es kein erstes Element.
Hier ein Vergleich:
Nimm einen Eimer voll mit Murmeln. Die Murmeln in dem Eimer ist die Menge M.
Jetzt die Frage: Welche Murmel ist in der Menge M die erste Murmel?

maximov 8. Mai 2004 16:30

Re: Aus einem Set den ersten Eintrag extrahieren
 
Zitat:

Zitat von Jens Schumann
Hallo,
Typen mit set also set of irgendwas sind Mengentypen. In einer Menge gibt es kein erstes Element.
Hier ein Vergleich:
Nimm einen Eimer voll mit Murmeln. Die Murmeln in dem Eimer ist die Menge M.
Jetzt die Frage: Welche Murmel ist in der Menge M die erste Murmel?

Die wo fett und dick 1 draufsteht :mrgreen:

...im ernst: Im prinzip sind mengen 'array of bit', da das aber mit normaler addressierung niemals hinhauen würde, gibt es halt die operatoren, die im wesentliche den normalen bit-operatoren entsprechen.

So würde dennoch gehen zB. das element 1 anzusprechen:

Delphi-Quellcode:
type
  TCD = (t,c,d);
  TSetCD = set of TCD;

var p: boolean; x: TSetCD;

x := [t,c];
p := TCD(1) in x;
..allerdings kommt kein TCD dabei raus, sondern ein boolean. Da es sich nur um ein bit handelt.

fred.reichbier 8. Mai 2004 17:33

Re: Aus einem Set den ersten Eintrag extrahieren
 
Jo, erstmal danke.
Ich wollte ein Kartenspiel programmieren,
und hab gedacht, dass das am besten mit Sets in der Art [Sieben,Acht,Neun,Ass]
am besten klappen würde.
Okay, ich probiers mal mit dynamischen Arrays.
Noch mal danke,
fred

Hansa 8. Mai 2004 17:41

Re: Aus einem Set den ersten Eintrag extrahieren
 
Zitat:

Zitat von fred.reichbier
Ich wollte ein Kartenspiel programmieren...Okay, ich probiers mal mit dynamischen Arrays.
Noch mal danke,
fred

Wozu das denn dynamisch machen ? :wall: Beim Skat sinds 32, beim Poker 54, zumindest aber ist die Zahl der Spielkarten begrenzt und je nach Spiel genau definiert. Insofern also eine Steilvorlage für ein Array. :mrgreen:

maximov 8. Mai 2004 22:20

Re: Aus einem Set den ersten Eintrag extrahieren
 
Also das könnte man durchaus auch mit sets machen -> das mischen in einem array und dann in die sets austeilen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:16 Uhr.

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