AGB  ·  Datenschutz  ·  Impressum  







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

Rechnen mit Mengen

Offene Frage von "Highttower"
Ein Thema von Highttower · begonnen am 9. Dez 2009 · letzter Beitrag vom 9. Dez 2009
 
Highttower

Registriert seit: 2. Jun 2009
Ort: Worms
88 Beiträge
 
Delphi 2010 Professional
 
#1

Rechnen mit Mengen

  Alt 9. Dez 2009, 15:24
Hallo zusammen,

ich habe folgendes Problem:

Das kleine Rotkäpchen packt ihren Korb mit Lebensmitteln für ihre Großmutter zur Verfügung stehen ihr folgende Lebensmittel:

Delphi-Quellcode:
type
 TLebensmittel = (Moehren, Erbsen, Kartoffeln, Tomaten, Erdnuesse, Aepfel, Birnen, Banananen, Annanas, Sahnetorten, Fruchtkuchen, Lebkuchen, Spekulatius);

TKorb = set of TLebensmittel;
Soweit ist alles schön und gut

Jetzt möchte ich ihr aber sagen können, packe nur Obst, Gemüse oder nur Backwaren ein.

Dazu bin ich bisher so vorgegangen:

Delphi-Quellcode:
type
TLebensmittelgruppen = (Obst, Gemuese, Backwaren)

var
FKorb : TKorb;

impelmentation

procedure packeKorbEin(AGruppe : TLebensmittelgruppen );
begin
    case AGruppe of
        Obst: begin
            FKorb := FKorb + Aepfel, Birnen, Banananen, Annanas;
        end;
        Gemuese: begin
            FKorb := FKorb + Moehren, Erbsen, Kartoffeln, Tomaten;
        end;
        Backwaren: begin
            FKorb := FKorb + Sahnetorten, Fruchtkuchen, Lebkuchen, Spekulatius;
        end;
    end;
end;
Da Rotkäpchen aber sehr vergässlich ist, guckt sie noch einmal nach ob noch alles da ist:

Delphi-Quellcode:
procedure guckeInKorb;
var neSache : TLebensmittel;
begin
    for neSache in FKorb do begin
        case neSache of
            Aepfel, Birnen: ShowMessage('Heimische Früchte hab ich!');
            Banananen, Annanas: ShowMessage('Exotische Früchte hab ich!');
            Moehren, Erbsen, Kartoffeln: ShowMessage('Gemüse hab ich!');
            Tomaten: ShowMessage('Tomaten aus dem eigenen Garten hab ich!');
            Sahnetorten, Fruchtkuchen, Lebkuchen, Spekulatius: ShowMessage('Sachen die dick machen hab ich!');
            else: ShowMessage('Den andern Kram wie Erdnüsse und so hab ich auch!')
    end;
end;
Wie ihr seht reicht ihr oft eine Sache von einer ganzen Gruppe von Sachen. Daher will sie danach nicht mehr danach suchen müssen, Äpfel und Birnen sehen ja auch ähnlich aus. Darum packt sie das Obst einfach aus dem Korb heraus ... und genau das will nicht klappen:

Delphi-Quellcode:
type
THeimischesObst = (Aepfel, Birnen);
TExotischesObst = (Bananen, Annanas);
TGemuese = (Moehren, Erbsen, Kartoffeln);
// usw.

implementation

procedure guckeInKorb;
var neSache : TLebensmittel;
begin
    for neSache in FKorb do begin
        case neSache of
            THeimischesObst : begin
                FKorb = FKorb - THeimischesObst;
                ShowMessage('Heimische Früchte hab ich!');
            end;
            TExotischesObst :begin
                FKorb = FKorb - TExotischesObst ;
                ShowMessage('Exotische Früchte hab ich!');
            end;
            TGemuese :begin
                FKorb = FKorb - TGemuese ;
                ShowMessage('Gemuese hab ich!');
            end;
            Tomaten: ShowMessage('Tomaten aus dem eigenen Garten hab ich!');
            TGebaeck: begin
                FKorb = FKorb - TGebaeck;
                ShowMessage('Gebäck hab ich!');
            end;
            else: ShowMessage('Den andern Kram wie Erdnüsse und so hab ich auch!')
    end;
end;
Das Problem daran ist er versteht nicht das das Teilmengen sind. Kann mir jemand erklären wie das in Delphi geht? Hier in dem Beispiel habe ich jetzt die Typen genommen, es bringt auch nix wenn ich davon "Objekte" anlege.

Das hier habe ich mir angeguckt bringt mich aber nicht sonderlich weiter.

Vielen Dank,

Tobias
Tobi
Rechtschreib und Semikolion Fehler dürfen behalten werden.
  Mit Zitat antworten Zitat
 


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:43 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