Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

21

Thursday, June 10th 2004, 10:15pm

du hast auch nicht vergessen java.util.* zu importieren?
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Mac

Papa

  • "Mac" is male

Posts: 645

Date of registration: Oct 17th 2002

Location: Hannover

Occupation: IT Freelancer

22

Thursday, June 10th 2004, 10:20pm

Taucht in der Regel auf wenn er die Definition nicht finden kann. Hast du am Anfang der Datei die java.util eingebunden? In dem Package ist das Interface definiert.

edit: so was... war ja schon ne Antwort da. völlig übersehen...

This post has been edited 2 times, last edit by "Mac" (Jun 10th 2004, 10:22pm)


  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

23

Thursday, June 10th 2004, 10:46pm

Quoted

Original von Rizzo
würde gerne mal wissen wie ihr die Sortierung nach den Ganzzahligen Teilern realisiert habt. Wir haben das Sieb des Eratosthenes benutzt mit einer Iteration bis Zahl/2. Leider ist dieses Verfahren bei besonders großen Zahlen nicht sehr effizient.

Hat vielleicht jemand Ahnung von Zahlentheorie und kennt bessere Verfahren?
Ahnung nicht wirklich, aber ich habe einen ganz netten Überblicksartikel gefunden: http://danae.uni-muenster.de/~lembeck/le…2_kirchhoff.pdf
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

np

Junior Schreiberling

Posts: 155

Date of registration: Oct 23rd 2002

24

Friday, June 11th 2004, 8:28am

Quoted

Original von Rizzo
Hi,

würde gerne mal wissen wie ihr die Sortierung nach den Ganzzahligen Teilern realisiert habt. Wir haben das Sieb des Eratosthenes benutzt mit einer Iteration bis Zahl/2. Leider ist dieses Verfahren bei besonders großen Zahlen nicht sehr effizient.

Hat vielleicht jemand Ahnung von Zahlentheorie und kennt bessere Verfahren?

Hinweis: Es geht um ganzzahlige Teiler, nicht um Primteiler. D.h. du programmierst einfach eine Schleife, die für eine Zahl a alle Teiler <=a ausprobiert.

Primfaktorzerlegung erschien mir zu kompliziert als Aufgabe, obwohl es sehr schöne zahlentheoretische Formeln zur Abschätzung der Anzahl der Primteiler gibt, ohne diese tatsächlich anzugeben.

yv

Junior Schreiberling

  • "yv" is female

Posts: 229

Date of registration: Dec 11th 2001

25

Friday, June 11th 2004, 2:12pm

design- pattern

Hallo,
meine Sortierungen laufen zwar, aber mit dem Design- Hinweis in der Aufgabenstellung habe ich Schwierigkeiten. Ist das Stichwort Singleton hier angebracht? Falls nicht, hat jemand einen anderen Tipp?

Danke schonmal!

np

Junior Schreiberling

Posts: 155

Date of registration: Oct 23rd 2002

26

Friday, June 11th 2004, 2:56pm

RE: design- pattern

Quoted

Original von yv
Hallo,
meine Sortierungen laufen zwar, aber mit dem Design- Hinweis in der Aufgabenstellung habe ich Schwierigkeiten. Ist das Stichwort Singleton hier angebracht? Falls nicht, hat jemand einen anderen Tipp?

Danke schonmal!

Anderer Tipp: Um die Kriterien zu trennen, muss irgendwann eine case-(oder if)-Abfrage stattfinden. Je "früher" desto besser für die Laufzeit.

yv

Junior Schreiberling

  • "yv" is female

Posts: 229

Date of registration: Dec 11th 2001

27

Friday, June 11th 2004, 5:01pm

danke!

Das habe ich intuitiv mit switch (=case) gemacht, müsste aber laufzeitmäßig auch ok sein.

This post has been edited 1 times, last edit by "yv" (Jun 11th 2004, 5:06pm)


Uprooter

Junior Schreiberling

  • "Uprooter" is male

Posts: 249

Date of registration: Oct 7th 2003

Occupation: Angw. Inf.

28

Saturday, June 12th 2004, 4:39pm

man braucht doch bei der eingabe der 2 einen komparator, der die beträge der einzelnen zahlen vergleicht, die methode im komparator bekommt 2 objekte, diese müssen aber in int-zahlen umgewandelt werden, damit ich die abs-methode benutzen kann, wie mache ich das?

DominionMADz

Junior Schreiberling

Posts: 165

Date of registration: Feb 8th 2002

Location: SHG

29

Saturday, June 12th 2004, 7:01pm

int n = parseInt(obj1.toString());
bzw.
int m = ((Integer)obj1).intValue();

mfg

Marco

Shadow

... mit bunten Sternchen und so

  • "Shadow" is male

Posts: 838

Date of registration: Dec 21st 2001

Location: Hamburg

30

Saturday, June 12th 2004, 11:21pm

Quoted

Original von DominionMADz
int n = parseInt(obj1.toString());
bzw.
int m = ((Integer)obj1).intValue();
Letzteres ist die sauberere und schnellere Variante, da sie ohne den Umweg über einen String arbeitet, der dann wieder geparst werden müsste.

Shadow
"Man hält die Erzeugung von Information für ein Zeichen von Intelligenz, während in Wirklichkeit das Gegenteil richtig ist: Die Reduktion, die Auswahl der Information ist die viel höhere Leistung."
-- Heinz Zemanek

Sinan

Senior Schreiberling

  • "Sinan" is male

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

31

Sunday, June 13th 2004, 1:53pm

Quoted

Original von vier
Wäre von Vorteil, wenn du auf die letzte Seite der Folien guckst


Quoted

Original von Uprooter
achso, du meinst den komparator der auf der seite steht..der vergleich einfach 2 vektoren(deren Länge?) und gibt 1,-1 oder 0 aus, ist mir nicht so klar, wie ich es bei der 7 übung anwenden soll, so dass es schneller geht als mit reverse(siehe oben).


Da ich die Aufgebe schon gelöst hab und noch n bisschen Zeit übrig blieb, habe mir die Folien nur so "Spaßhalber ;)" angeschaut, und ehrlich gesagt:
WEDER auf der letzten NOCH auf einer anderen Seite habe ich was gefunden, das mit der Aufgabe zu tun hat ?(

Oder redet ihr vielleicht von anderem Skript als dies hier :D
Skript (Teil 7)
With great power comes great responsibility

Uprooter

Junior Schreiberling

  • "Uprooter" is male

Posts: 249

Date of registration: Oct 7th 2003

Occupation: Angw. Inf.

32

Sunday, June 13th 2004, 3:37pm

ich bin langsam am verzweifeln: ich habe einen comparator geschrieben, wie übergebe ich ihn denn an die sort-methode sort(List l, Comparator c) ?
Hierbei bekomme ich eine Fehlermeldung:
Comparator c=ComparatorBla.compare();
Collections.sort(l,c);

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

33

Sunday, June 13th 2004, 4:50pm

Quoted

Original von Uprooter
ich bin langsam am verzweifeln: ich habe einen comparator geschrieben, wie übergebe ich ihn denn an die sort-methode sort(List l, Comparator c) ?
Hierbei bekomme ich eine Fehlermeldung:
Comparator c=ComparatorBla.compare();
Ich nehme mal an, daß ComparatorBla das Interface Comparator implementiert. Dann kann diese Zuweisung nicht funktionieren, da die compare-Methode dieser Klasse kein Objekt vom Typ Comparator zurückliefert. Zudem ist compare nicht als static deklariert und daher nicht als Klassenmethode aufrufbar.

Quoted

Collections.sort(l,c);
Du mußt der sort-Methode ein Objekt vom Typ Comparator übergeben. Zum Beispiel so: Collections.sort(l, new ComparatorBla());
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

34

Sunday, June 13th 2004, 4:52pm

Quoted

Original von Sinan
Da ich die Aufgebe schon gelöst hab und noch n bisschen Zeit übrig blieb, habe mir die Folien nur so "Spaßhalber ;)" angeschaut, und ehrlich gesagt:
WEDER auf der letzten NOCH auf einer anderen Seite habe ich was gefunden, das mit der Aufgabe zu tun hat ?(

Oder redet ihr vielleicht von anderem Skript als dies hier :D
Skript (Teil 7)


Ich hab von Seite 45 in Teil 6 geredet (http://www.gdv.uni-hannover.de/download.…6.pdf&type=misc).
Als ich das geschrieben hab, gab es Teil 7 noch nicht online.
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Uprooter

Junior Schreiberling

  • "Uprooter" is male

Posts: 249

Date of registration: Oct 7th 2003

Occupation: Angw. Inf.

35

Sunday, June 13th 2004, 5:11pm

@Joachim:
Ja ComparatorBla implementiert Comparator und er verlang auch, dass compare() static ist, damits geht, aber irgendwie hiflt mie das nicht weiter, bei der obigen frage.

Collections.sort(l, new ComparatorBla());, das hilft auch nicht weiter, weil ComparatorBla keinen von mir definierten konstruktor besitzt... klar was ich meine?

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

36

Sunday, June 13th 2004, 5:28pm

Quoted

Original von Uprooter
Ja ComparatorBla implementiert Comparator und er verlang auch, dass compare() static ist, damits geht, aber irgendwie hiflt mie das nicht weiter, bei der obigen frage.
Wieso static? Der sort-Methode muß man sowieso ein Objekt übergeben und keine Klasse. In der Doku von Comparator steht auch kein Wort von Klassenmethoden.

Quoted

Collections.sort(l, new ComparatorBla());, das hilft auch nicht weiter, weil ComparatorBla keinen von mir definierten konstruktor besitzt...
Dann schreib einen bzw. nimm den Default-Konstruktor.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Jun 13th 2004, 5:30pm)


Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

37

Sunday, June 13th 2004, 6:37pm

Quoted

Original von Uprooter
@Joachim:
Ja ComparatorBla implementiert Comparator und er verlang auch, dass compare() static ist, damits geht, aber irgendwie hiflt mie das nicht weiter, bei der obigen frage.
?


compare() darf nicht static sein, da es bei der Vererbung durch das Interface auch nicht static gesetzt ist.
Definiere die jeweilige compare() Methode und benutze es so wie schon Joachim korrekt gesagt hat.
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Uprooter

Junior Schreiberling

  • "Uprooter" is male

Posts: 249

Date of registration: Oct 7th 2003

Occupation: Angw. Inf.

38

Monday, June 14th 2004, 12:12am

boah ich hab doch zugestimmt, dass compare() nicht static sein soll, der compiler wollts aber für die zuweisung haben, das hab ich gemeint.
ja wenn ich dann an sort ein Objekt der klasse ComparatorBla übergebe, was hat dann compare() damit zu tun? sort soll doch mit compare() was anfangen und nciht mit was anderem oder irre ich mich da?

np

Junior Schreiberling

Posts: 155

Date of registration: Oct 23rd 2002

39

Monday, June 14th 2004, 8:23am

Quoted

Original von Uprooter
boah ich hab doch zugestimmt, dass compare() nicht static sein soll, der compiler wollts aber für die zuweisung haben, das hab ich gemeint.
ja wenn ich dann an sort ein Objekt der klasse ComparatorBla übergebe, was hat dann compare() damit zu tun? sort soll doch mit compare() was anfangen und nciht mit was anderem oder irre ich mich da?

Weil in Java Funktionen/Methoden keine "first-class"-Daten sind (also nicht als Funktionsparameter übergeben werden können), geht man folgenden Umweg:

1. Definiere ein Interface (hier Comparator), dass über eine Methode verfügt, die die gewünschte Signatur hat (hier compare).
2. Implementiere das Interface in einer Klasse (hier ComparatorBla), so dass die Methode wie gewünscht überschrieben wird.
3. Übergebe ein Objekt der Klasse als Parameter.

Man übergibt also eine Methode, indem sie in ein Objekt "verpackt" wird. Weil die neue Klasse das Comparator-Interface implementiert, weiß die sort-Methode ja, wie die compare-Funktion heißen muss (nämlich compare) und kann sie dann aufrufen.

Die Methode darf nicht static sein, weil sie ja von sort in später Bindung aufgerufen werden muss. Das geht mit static nicht.

Das Prinzip war kurz auch bei "Anonyme Klassen" erklärt worden, man muss das aber nicht mit anonymen Klassen lösen, "normale" Klassen reichen auch.

Dieses Idiom ist in C++ auch als "Funktor" bekannt, es ist eine Vorstufe zum "Command"-Pattern.

This post has been edited 1 times, last edit by "np" (Jun 14th 2004, 8:24am)


Uprooter

Junior Schreiberling

  • "Uprooter" is male

Posts: 249

Date of registration: Oct 7th 2003

Occupation: Angw. Inf.

40

Monday, June 14th 2004, 9:20pm

danke, danke, danke, endlich hats jemand mal richtig erklärt :)