FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Praktische Informatik

P3 - Aufgabenzettel 6

P3 - Aufgabenzettel 6 2003-01-13 18:06
Zaphod
Habt ihr euch schon den aktuellen Aufgabenzettel angeschaut? Also die letzte Aufgabe find ich ja sowas von cool. Vielleicht sollte ich das Studienfach wechseln und Philosoph werden. Die einzigen Tätigkeiten sind Essen und Denken. An so einen Beruf könnte ich mich gewöhnen [img]http://www.fb18.de/gfx/23.gif[/img]

Re: P3 - Aufgabenzettel 6 2003-01-18 21:18
Bert
Hehe Du und Philosoph…. Ich lach mich tot…. Aber die Implementation dazu ist auch voll easy… ;-)

Re: P3 - Aufgabenzettel 6 2003-01-21 20:52
Anatoly Karpov
Halli Hallo Hallöle…
Ich hab mich grad mal ein wenig mit der ersten Aufgabe beschäftigt. Eventuell hat sich die ja auch schon wer von euch angeschaut. Ich würd aber gerne wissen, ob's soweit stimmt, deswegen hier mein Laufzeitprotokoll:

Starte die naive Implementation der Evaluation: 1. Durchlauf des nestedLoopJoins (mit 9 Relationen in Liste) Neues Tupel: (18053:18070) Neues Tupel: (18053:18059) Neues Tupel: (18053:18060) Neues Tupel: (18058:18071) Neues Tupel: (18058:18080) 2. Durchlauf des nestedLoopJoins (mit 14 Relationen in Liste) Neues Tupel: (18053:18071) Neues Tupel: (18053:18080) Nested Loop Joins sind beendet(16 Relationen in Liste) Die alte Datenbasis war: 1. (18053:18058) 2. (18053:18065) 3. (18065:18070) 4. (18058:18070) 5. (18058:18059) 6. (18058:18060) 7. (18059:18071) 8. (18059:18080) 9. (18060:18080) Die neue Datenbasis ist: 1. (18053:18058) 2. (18053:18065) 3. (18065:18070) 4. (18058:18070) 5. (18058:18059) 6. (18058:18060) 7. (18059:18071) 8. (18059:18080) 9. (18060:18080) 10. (18053:18070) 11. (18053:18059) 12. (18053:18060) 13. (18058:18071) 14. (18058:18080) 15. (18053:18071) 16. (18053:18080) Fertig!

Re: P3 - Aufgabenzettel 6 2003-01-22 22:35
Zaphod
Ich habe die Zahlen erstmal als Paare in eine Liste gepackt. Also:
[ [1, 2], [3, 4], …, [5, 6] ] (nur Beispielzahlen)
Doch jetzt stehe ich vor dem Problem, dass ich die da nicht als Zahlen wieder heraus bekomme, denn "cannot cast from object to int"
Wie geht sowas?

a ist hier das erste Paar, a2 soll das zweite Element davon werden:

int a2 = (int)(a.get(1));

..und so klappt es leider nicht..

Re: P3 - Aufgabenzettel 6 2003-01-22 22:58
Slater
hmm wie hast du sie denn da reingekriegt, wenn doch
Listen, (also die von Collections) nur Objecte als elemente akzeptieren?

Re: P3 - Aufgabenzettel 6 2003-01-22 23:01
Zaphod
Naja.. ich hab die halt als Objekte reingepackt [img]http://www.fb18.de/gfx/25.gif[/img]:
a.add(new Integer(meineTolleZahl));

Re: P3 - Aufgabenzettel 6 2003-01-22 23:07
Slater
merke: ((Integer == Integer) && (Integer != int)) == true

int meineTolleZahl = ((Integer) a.get(0)).intValue(); [img]http://www.fb18.de/gfx/23.gif[/img]




Re: P3 - Aufgabenzettel 6 2003-01-22 23:10
Zaphod
Danke, das war erhellend [img]http://www.fb18.de/gfx/23.gif[/img]

Re: P3 - Aufgabenzettel 6 2003-01-25 13:41
Anonymer User
Wieso willst du die Werte denn unbedingt als int haben? String.compareTo() funktioniert doch auch mit den Zahlen als Strings..

-Felix

Re: P3 - Aufgabenzettel 6 2003-01-25 21:38
Slater
wie ist denn die erste aufgabe gemeint, gibts da noch nähere informationen zur implementation?, oder darf man alles selber spezifizieren

z.b.
* wie soll man die tabellen darstellen

* bei nestedLoopJoin die tabellen als parameter sicherlich, aber wie die joinbedingung darstellen (besonders wenn sie mal etwas interessanter ist als nur die gleichheit je eines attributes.., oder gibts das gar nicht?)

Re: P3 - Aufgabenzettel 6 2003-01-25 23:34
Anonymer User
Also eigentlich soll der nestedLoopJoin ein join sein wie im Skript beschrieben glaube ich, das bedeutet dann, dass du ein neues Tupel bekommst, welches m + n Attribute hat, und dann angibst, welche 2 Attribute gleich sein sollen. Falls du "nur" zwei Attribute vergleichen willst, einfach die Stellen in dem jeweiligen Tupel übergeben, ansonsten könnte es kompliziert werden, aber du könntest ja auch z.b. ein Array übergeben, welches String-Arrays mit jeweils 2 Elementen enthält, welche dann alle die von dir übergebene Bedingung erfüllen müssen oder so ähnlich. Brauchen wirst du aber nur den "normalen" Vergleich von je einem Attribut [img]http://www.fb18.de/gfx/25.gif[/img]
Insofern würd ich mich eher auf eine ordentliche Modellierung der Klassen beschränken, z.B. Relation, Tupel usw., das macht das Ganze dann auch anschaulich und schön zu lesen [img]http://www.fb18.de/gfx/23.gif[/img]

und nochmal was ganz anderes:
hab vorhin jEdit ver. 4 installiert, scheint echt grossartig zu sein, und ist zumindest subjektiv bewertet das schnellste
Javaprogramm, daß ich bisher benutzt hab. Sehr zu empfehlen wie ich finde [img]http://www.fb18.de/gfx/6.gif[/img]

-Felix

Re: P3 - Aufgabenzettel 6 2003-01-26 14:11
XPhilosoph
Hat sich schon mal jemand ernsthaft mit den Philosophen beschäftigt??

IMO hängt sich das Programm auf, da es einen Deadlock gibt. Aber wie kann man das am Besten verhindern??

Re: P3 - Aufgabenzettel 6 2003-01-26 14:46
Slater
wie wärs damit, erst die BEIDEN gabeln aufzunehmen, wenn BEIDE frei sind, und sonst zu warten ohne eine aufzunehmen.. [img]http://www.fb18.de/gfx/22.gif[/img]

Re: P3 - Aufgabenzettel 6 2003-01-26 15:14
TriPhoenix
Alternativ könnte man auch jeden Philosophen erst die linke, dann die rechte Gabel nehmen lassen, bis auf einen, der nimmt zuerst die rechte, dann die linke.

Re: P3 - Aufgabenzettel 6 2003-01-26 15:56
Popcorn
Man schaltet einfach eine Funktion zwischen, die guckt ob jeder genau eine Gabel hat. Wenn das der Fall ist, werden die Philosophen je nach ihren Geduldswerten ungeduldig und attakieren sich dann entsprechend Ihrer Kampfwerte. Allerdings ist dann noch eine Funktion removePhilosoph notwendig.

Re: P3 - Aufgabenzettel 6 2003-01-26 17:16
Zaphod
Björn, schau doch mal, ob es möglich ist, den Raum mit den Philosophen in unser altes Zork-Adventure einzubauen [img]http://www.fb18.de/gfx/22.gif[/img]

Re: P3 - Aufgabenzettel 6 2003-02-01 19:17
Fred
Halli Hallo Hallöle…
Ich hab mich grad mal ein wenig mit der ersten Aufgabe beschäftigt. Eventuell hat sich die ja auch schon wer von euch angeschaut. Ich würd aber gerne wissen, ob's soweit stimmt, deswegen hier mein Laufzeitprotokoll
Ich habe nur ein fertiges Ergebnis als "Protokoll":

Eingelesene Liste

Voraus Vorles
————–
(18053, 18058)
(18053, 18065)
(18058, 18059)
(18058, 18060)
(18058, 18070)
(18059, 18071)
(18059, 18080)
(18060, 18080)
(18065, 18070)



naiv evaluierte Liste

Voraus Vorles
————–
(18053, 18058)
(18053, 18059)
(18053, 18060)
(18053, 18065)
(18053, 18070)
(18053, 18071)
(18053, 18080)
(18058, 18059)
(18058, 18060)
(18058, 18070)
(18058, 18071)
(18058, 18080)
(18059, 18071)
(18059, 18080)
(18060, 18080)
(18065, 18070)



semi naiv evaluierte Liste

Voraus Vorles
————–
(18053, 18058)
(18053, 18059)
(18053, 18060)
(18053, 18065)
(18053, 18070)
(18053, 18071)
(18053, 18080)
(18058, 18059)
(18058, 18060)
(18058, 18070)
(18058, 18071)
(18058, 18080)
(18059, 18071)
(18059, 18080)
(18060, 18080)
(18065, 18070)