Klasse und Objekte - Menge

canyakan95

Bekanntes Mitglied
Hallo ich hatte ein paar aufgaben zu klassen und objekte habe versucht die meisten zu lösen..einige habe ich leider nicht geschafft ..bei den anderen bin ich mir nicht sicher.
Hoffe ihr könnt das durch checken..
Vervollständigen Sie die Klasse Menge. Die Objekte dieser Klasse sollen Mengen
von natürlichen Zahlen aus dem geschlossenen Intervall von 0 bis 100 beschreiben. Dazu besitzt
die Klasse ein Feld zahlen von boolean-Werten, in dem angezeigt wird, welche Zahlen in der
Menge enthalten sind. Gilt beispielsweise zahlen[3]==true, so bedeutet dies, dass die Zahl 3
Element der Menge ist. Gilt zahlen[7]==false, so bedeutet dies, dass die Zahl 7 kein Element
der Menge ist.


1)Konstruktor, der eine leere Menge anlegt
2)// Konstruktor, der eine Menge mit genau dem Wert von i als Element anlegt; falls i nicht im
// Intervall von 0 bis 100 liegt, wird eine IndexException geworfen
3)Konstruktor, der eine Menge mit allen im Parameter z angegebenen Werten als Elementen
// anlegt; falls einer dieser Werte nicht im Intervall von 0 bis 100 liegt, wird eine
// IndexException geworfen
4)istIn liefert den Wert true, falls der Wert von i Element der Menge ist, sonst false;
// falls i nicht im Intervall von 0 bis 100 liegt, wird eine IndexException geworfen
5)// istLeer liefert den Wert true, falls die Menge keine Elemente enthält, sonst wird false
// zurückgegeben
6)// vereinige erzeugt eine neue Menge und gibt diese zurück, deren Elemente durch die
// Vereinigung der aktuellen mit der als Parameter m übergebenen Menge gegeben sind
7)// gibKleinstes liefert das Element der Menge mit dem kleinsten Wert; falls die Menge leer
// ist (und kein solches Element existiert), wird eine EmptyException geworfen
Java:
public class Menge {
private boolean[] zahlen;

    public Menge()
    {
        zahlen=new boolean[0];
    }
    public Menge ( int i )
    {
        if(i<0 || i >100)
        {
            throw new RuntimeException();
        }
        else
        {
            zahlen = new boolean[i];
        }
    }
    public Menge(int[]z)
    {
        for(int i=0;i<z.length;i++)
        {
            if(z[i]>=0 && z[i]<=100)
            {
                zahlen=new boolean[z[i]];
            }
        }
    }
    public boolean istIn( int i)
    {
        for(int j=0;j<zahlen.length;j++)
        {
            if(zahlen[j]==i)
            {
                return true;
            }
        }
        return false;
    }
 

canyakan95

Bekanntes Mitglied
ja meine frage ist ob ich das was ich bis Punkt 4 bearbeitet habe richtig gemacht habe und ob ihr mir ab punkt 4 weiter helfen könnt , weil ich nicht weiß wie ich das implementieren soll
 

InfectedBytes

Top Contributor
deine klasse Menge soll immer ein array mit 100 Elementen sein. Du erzeugst jedoch verschiedene größen.
Die Klasse soll eben Mengen speichern können, welche nur zahlen zwischen 0 und 100 speichern können.
Wenn zahlen true liefert, dann liegt i in der Menge, ansonsten nicht.

Hier mal einer der Konstruktoren, den Rest kannst du dann vielleicht selber schaffen
Java:
    private boolean[] zahlen = new boolean[100];
    public Menge ( int i )
    {
        if(i<0 || i >100)
        {
            throw new RuntimeException();
        }
        else
        {
           zahlen[i] = true;
        }
    }
 

canyakan95

Bekanntes Mitglied
Hallo
wie würdet ihr denn die aufgabe hier machen: 4)istIn liefert den Wert true, falls der Wert von i Element der Menge ist, sonst false;
// falls i nicht im Intervall von 0 bis 100 liegt, wird eine IndexException geworfen

Habe es mit ner for-schleife versucht hat aber leider nicht geklappt

Mfg
 

InfectedBytes

Top Contributor
Die Lösung dazu steht doch schon in der Aufgabenstellung:
Gilt beispielsweise zahlen[3]==true, so bedeutet dies, dass die Zahl 3
Element der Menge ist. Gilt zahlen[7]==false, so bedeutet dies, dass die Zahl 7 kein Element
der Menge ist.

Du brauchst doch nichts weiter tun, als den Wert von zahlen[index] zurückzugeben, bzw. eine Exception werfen, falls der Index ungültig ist.
 

Neue Themen


Oben