AGB  ·  Datenschutz  ·  Impressum  







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

Mengenoperatoren

Ein Thema von Pseudemys Nelsoni · begonnen am 31. Okt 2004 · letzter Beitrag vom 31. Okt 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Mengenoperatoren

  Alt 31. Okt 2004, 12:24
moin 8)

Kann mir jemand die Mengenoperatoren erklären und die syntax wie man sie anwendet zeigen?

in google wird unter "delphi mengenoperatoren" gerade mal 1 1/2 seiten angezeigt... super.

Die Delphi hilfe kapier ich nicht ganz, da ist mir zuviel O X Y usw drin....
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:15
moin,

die OH ist hier zwar knapp bemessen, aber das wichtigste sagt sie dann doch nur halt in der mathematischen Kurzversion

Hier nochmal ausführlicher:

A := [1,2,3]
B := [3,4,5]

+
Der + Operator bildet die Vereinigungsmenge aus den Operanden. D.h. im Ergebnis befinden sich alle Elemente die in A und/oder B enthalten sind: A+B = [1,2,3,4,5]

-
Der - Operator bildet die Differenzmenge. D.h. im Ergebnis befinden siach alle Elemente die in A aber nicht in B enthalten sind: A-B = [1,2]

*
Der * Operator bildet die Schnittmenge aus den Operanden. D.h. im Ergebnis befinden sich alle Elemente die sowohl in A als auch in B entahlten sind: A*B = [3]


soweit dazu. Fortsetzung folgt
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:21
moin xineohp,

danke für die beschreibung

dennoch versteh ich sie nicht ( )..ich weiss ehrlich gesagt nicht wofür A und B stehen.
Sagen wir mal ich habe folgendes:

Delphi-Quellcode:
type
  tmyset = set of (asdf, qwert);

...

var
  myset: tmyset;
begin
  // wie mach ich das nun wenn ich wissen möchte ob sowohol "asdf" als auch "qwert" drinnen sind?
  if ([asdf, qwert] * myset) then...
  //so? (geht leider nicht) :\
end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:22
Sets (Mengen) sind in Delphi einfach Bit-Arrays. Die Groesse ist auf 8 Bytes beschraenkt, also maximal 256 Elemente.
Code:
+-------+---+-------+
|   A  | C |   B  |
+-------+---+-------+
Das soll das klassische Diagramm mit zwei ueberschneidenden Kreisen sein.
AC ist die eine Menge und CB die andere. C ist die Schnittmenge.
In Delphi ist A * B die Schnittmenge, also AC * CB = C.
AC - CB = A, CB - AC = B, A + C = AC, C + B = B + C = CB.
Dann gibt es noch den Operator "in" mit booleschem Ergebnis, der schlicht prueft ob ein bestimmtes Element im Set ist.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#5

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:24
Hi Pseudemys Nelsoni,

Zitat von Pseudemys Nelsoni:
Delphi-Quellcode:
type
  tmyset = set of (asdf, qwert);

...

var
  myset: tmyset;
begin
  // wie mach ich das nun wenn ich wissen möchte ob sowohol "asdf" als auch "qwert" drinnen sind?
  if ([asdf, qwert] * myset) then...
  //so? (geht leider nicht) :\
end;
der Code ist auch nur fast richtig.
if ([asdf, qwert] * myset = [asdf, qwert]) then... müsste stimmen.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#6

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:28
Ich hoffe mal dass das hier hilft. 8)
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#7

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:29
danke euch 4, nun verstehe ichs auch
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:31
Zitat von xineohp:
A := [1,2,3]
B := [3,4,5]
soviel mal gleich am Anfang zur Frage was den A und B seien sagt ja sehr viel aus wie gründlich du liest

zu deinem Beispiel:
If ([awert,bwert]*myset = [awert,bwert]) then // ... Der * Operator gibt die Elemente zurück die sowohl in A (hier: A=[awert,bwert]) als auch in B (hier: B=myset) enthalten sind. D.h. das Ergebnis von A*B ist eine Menge! kein boolscher Ausdruck! Wenn du jetzt überprüfst ob die Schnittmenge aus A und B gleich A ist, dann ist klar das A in B enthalten ist.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:34
Andererseits müsste auch If ([awert,bwert]<=myset) then //... zum gewünschten Ergebnis führen.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Mengenoperatoren

  Alt 31. Okt 2004, 13:34
Es geht auch "if myset >= [asdf, qwert] then", denn die Vergleichsoperatoren sind auch alle definiert.
A > B gilt wenn B eine echte Teilmenge von A ist.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:10 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