AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Mengen

Ein Thema von Neutral General · begonnen am 2. Mär 2005 · letzter Beitrag vom 4. Mär 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#11

Re: Problem mit Mengen

  Alt 2. Mär 2005, 18:50
Man definiert es meistens so:

Delphi-Quellcode:
type
  TGegebenesElement = (geRadius, geHoehe, geUmfang, geGrundflaeche, geVolumen, geOberflaeche);
  TGegebeneElemente = set of TGegebenesElement;
TGegebenesElement ist eine Enumeration/Aufzählungstyp und TGegebeneElemente die eigentliche Menge zum zur Enumeration. Dann funktionieren auch Include(), Exclude() und alle anderen Mengenoperationen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

Re: Problem mit Mengen

  Alt 2. Mär 2005, 19:28
Noch ne Frage nebenbei : Wie bekommt man heraus wie viele Elemente in einer Menge gerade enthalten sind ?
Michael
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Problem mit Mengen

  Alt 2. Mär 2005, 19:33
Gar nicht. Wüßte nicht wie. Und es wäre nett, wenn du mal zeigst, wie Du aus einem Typen eine Variable machst.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: Problem mit Mengen

  Alt 2. Mär 2005, 19:43
ka
Naja ich glaube ich weis wie ich sie doch zählen kann...
Michael
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#15

Re: Problem mit Mengen

  Alt 2. Mär 2005, 21:35
Delphi-Quellcode:
function CountOfElements(const Elements: TElements): Integer;
var
  I: TElement;
begin
  Result := 0;
  for I := Low(I) to High(I) do
    if I in Elements then
      Inc(Result);
end;

function CountOfElements(const Elements: TElements): Integer;
var
  I: Int64;
begin
  I := Ord(Elements);
  Result := 0;
  while I <> 0 do
  begin
    if Odd(I) then Inc(Result);
    I := I shr 1;
  end;
end;
ungetestet, müsste aber so gehen.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#16

Re: Problem mit Mengen

  Alt 3. Mär 2005, 13:56
Also, wenn den einzelnen Elementen keine bestimmten Werte aufgezwungen sind, dann reicht auch schon volgendes

Elemente := Ord(High(TheSet)) - Ord(Low(TheSet)) + 1; oder ganz kurz, da Ord(Low(TheSet)) = 0 sein sollte

Elemente := Ord(High(TheSet)) + 1; (es könnte sogar sein, dass die Ord's auch entfallen können)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#17

Re: Problem mit Mengen

  Alt 4. Mär 2005, 03:27
Delphi-Quellcode:

  SizeOf(Set) == High(Set) +1 <> CountOfElementsInSet(Set).
In anderen Worten High(Set) +1 gibt die Größe der Menge, d.h. wieviele unterschiedliche Elemente sie maximal enthalten kann. Dies ist somit nicht die Anzahl der tatsächlich enthaltenen Elemnte zu einem bestimmten zeitpunk.

Die max. Anzahl der Elemente in der Menge TZiffern = [0...9] ist 10 == High(TZiffern) +1,
eine Mengevariabale vom Typ TZiffern könnte aber auch so aussen -> Ziffern = [1,5,8]. High(Ziffern) == High(TZiffern) = 10, die Anzahl der real enthaltenen Elemente ist aber nur 3, denn nur drei Zahlen sind aktuell in Ziffern.

himitsu, damit gibt dein Vorschlag nicht wie gefragt

Zitat:
Wie bekommt man heraus wie viele Elemente in einer Menge gerade enthalten sind ?
die Anzahl der aktuell enthaltenen Elemente zurück.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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