Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 5 von 5 Treffern
Autor Beitrag
Thema: [Java - Bitshifting] Kardinalität einer Menge
Dennis2011

Antworten: 2
Hits: 4.917
16.11.2011 13:48 Forum: Praktische Informatik


Hallo!

1.) Bei der Methode public void insert(int elem) hast Du die Bitverschiebung vergessen!

Du hast durch setState eine Menge repräsentiert und diese willst Du vereinigen mit einer Zahl, die ja ebenfalls durch eine 1 an der entsprechenden Bit-Stelle repräsentiert wird. Also musst Du die 1 so weit verschieben (nach links), daß sie an der Stelle steht, die für die hinzuzufügende Zahl steht und DANN vereinigst Du das mit setState.


Außerdem sollst Du ja vorher noch schauen, ob die hinzuzufügende Zahl kleiner 32 ist. Das musst Du am Anfang mit einer if-Bedingung berücksichtigen.


2.) Bei der Methode public boolean hasElem(int elem) übergibst Du ja als Paramter diejenige Integer-Zahl, von der Du wissen möchtest, ob sie in der durch setState repräsentierten Menge enthalten ist.

Was muss dafür gelten, daß sie das ist? An der elem-ten Bitstelle muss eine 1 stehen. Erstelle also einen Booleschen Ausdruck, der true ist, wenn an der elem-ten Stelle eine 1 steht und setze diesen Booleschen Ausdruck in return ein.
Das ist es dann schon.

(Tipp: Du findest das schon fertig in dem Quellcode, der bereitgestellt wurde und so weit ich mich erinnere wurde das sogar in der Vorlesung besprochen.)

3. Die Methode public int card() kann man so aufbauen:

Nimm eine for-Schleife her und schaue mit der, ob an der i-ten Bitstelle eine 1 oder eine 0 steht. Wenn an der i-ten Stelle eine 1 steht, heißt das ja nix Anderes, als das die dazugehörige Bitstellen-Nummer ein Element der durch setState repräsentierten Menge ist und dann erhöhst Du die zu Beginn auf 0 gesetzte Kardinalität um 1.

Tipp: Auch hier findest Du den wichtigsten Ausdruck, den Du brauchst schon fertig im bereitgestellten Quellcode (ist der gleiche wie bei hasElem()).
Thema: Methodendeklaration (Java)
Dennis2011

Antworten: 5
Hits: 5.112
20.10.2011 22:40 Forum: Praktische Informatik


Besten Dank!
Thema: Methodendeklaration (Java)
Dennis2011

Antworten: 5
Hits: 5.112
20.10.2011 11:00 Forum: Praktische Informatik


Hallo, Karlito!

Vielen Dank für Deine Antwort.
Ich freue mich, daß ich schon richtig lag.

Und den Fehler im ersten Code (da sollte es natürlich nur double heißen) werde ich in meinen Unterlagen korrigieren.


Ich habe dazu noch eine kleine Ergänzungsfrage:

Unter einem Rückgabewert bzw. einem Ausgabewert hat man doch in etwa Folgendes zu verstehen:


Man kann bei der ersten Methode max(a,b) eine neue Variable initialisieren, also beispielsweise wäre es möglich

code:
1:
double v = max(10,20)


zu setzen (hier bekommt man wirklich einen Wert des Typs double zurückgegeben), wohingegen man bei einem reinen Ausgabewert (etwa: Bildschirmausgabe mit print) keine Variable deklarieren/ initialisieren könnte, weil man eben keinen Wert hat, der einem in irgendeiner Form "zum Weiterverarbeiten" zurückgegeben wird.



Trifft das den Unterschied zwischen Rück- und Ausgabe?
Thema: Methodendeklaration (Java)
Dennis2011

Antworten: 5
Hits: 5.112
Methodendeklaration (Java) 19.10.2011 17:52 Forum: Praktische Informatik


Meine Frage:
Hallo, liebes Informatikerboard!

Ich habe eine kurze Frage zur Methodendeklaration bei Java.

Und zwar frage ich mich, wann man bei der Deklaration von Methoden eigentlich void nimmt (und wann nicht).

Als Beispiele habe ich folgende im Sinn:

1. Deklaration mit double bei der Methode max() der Klasse Math:

code:
1:
public static void double max(double a, double b)


2. Deklaration mit void bei einer ähnlichen Methode:

code:
1:
2:
3:
4:
5:
6:
7:
8:
static void printMax(double a, double b)
{
  if ( a > b )
    System.out.println( a );
  else
    System.out.println( b );
}


Meine Ideen:
Meine Erklärung hierfür ist, daß man bei 1. (laut Java-Dokumentation) als Rückgabe einen Wert vom Typ double hat (klar: Entweder ist a das Maximum oder b und beide sind ja vom Typ double) und deswegen bei der Methodendeklaration double nehmen muss; bei 2. hingegen bekommt man ja eigentlich keinen Wert (eines bestimmten Typs), sondern eine Bildschirmausgabe. Deswegen nimmt man hier wohl void.


Ist das so korrekt erklärt?

Kann man allgemein sagen, daß man bei Bildschirmausgaben (also print, println,...) void nimmt?
Thema: Übersetzung in Wahrheitstafeln
Dennis2011

Antworten: 1
Hits: 3.660
18.10.2011 16:51 Forum: Technische Informatik


Ich verstehe nicht so recht Dein Vorgehen.

Deine Aufgabe besteht doch (wenn ich das korrekt verstanden habe) darin, alle Werte der Funktion [latex]f_1(x_1,x_2,x_3)[/latex] zu bestimmen?

Dann musst Du doch jetzt alle möglichen Kombinationen von [latex](x_1,x_2,x_3)[/latex] durchgehen.

Diese sind:

(0,0,0)
(1,0,0)
(0,1,0)
(0,0,1)
(1,1,0)
(1,0,1)
(0,1,1)
(1,1,1)

Jetzt würde ich diese Möglichkeiten einsetzen in die Funktion und schauen, was herauskommt.
Zeige Beiträge 1 bis 5 von 5 Treffern