CoMa

Computerorientierte Mathematik

TU logo

Inhalt
.

Institut
 .  Vorlesungen
 .  .  CoMa
 .  .  .  ehemalige Zyklen
 .  .  .  .  CoMaII SS03
 .  .  .  .  .  Literatur
 .  .  .  .  .  Programmierregeln
 .  .  .  .  . Mailarchiv
 .  .  .  .  .  Programm 3
 .  .  .  .  .  Programm 6

back zurück

Mailarchiv zur Computerorientierte Mathematik II

Hier stehen alle Emails, die von uns an alle CoMa-Gruppen gleichzeitig geschickt wurden. Es handelt sich dabei im Wesentlichen um Ankündigungen, Aufgabenhinweise und -korrekturen.

Das gibt Euch die Möglichkeit, den Inhalt versehentlich von Euch gelöschter Emails (erneut) zu lesen.

Inhalt

Tue, 29 Apr 2003 16:44:17 +0200, fest@math.TU-Berlin.DE
Punkte-Liste
Fri May 2 17:09:19 MEST 2003, co2-001@pool.math.tu-berlin.de
Update & 2. ProgAufg
Fri May 2 17:47:27 MEST 2003, co2-001@pool.math.tu-berlin.de
Volles Bild bei ContainerApplication
Sun May 4 22:07:57 MEST 2003, co2-001@pool.math.tu-berlin.de
ContainerApplication: Noch ne Verbesserung
Tue May 6 19:06:28 MEST 2003, co2-001@pool.math.tu-berlin.de
Debuggen mit der ContainerApplication
Mon May 12 10:54:14 MEST 2003, co2-001@pool.math.tu-berlin.de
Stack & RootPathIterator
Tue May 27 11:41:13 MEST 2003, co2-001@pool.math.tu-berlin.de
toString für Bäume
Tue May 27 13:53:34 MEST 2003, awerner@math.tu-berlin.de
paufgabe4
Fri May 30 16:37:49 MEST 2003, awerner@math.tu-berlin.de
nochmal_paufgabe4
Mon Jun 2 11:19:39 MEST 2003, co2-001@pool.math.tu-berlin.de
Neue ContainerApplication
Tue Jun 3 14:27:44 MEST 2003, awerner@math.tu-berlin.de
Uebung_07
Thu Jun 19 18:42:10 MEST 2003, co2-001@pool.math.tu-berlin.de
Folien aus der Übung

Emails


From: fest@math.TU-Berlin.DE
Date: Tue, 29 Apr 2003 16:44:17 +0200
Subject: Punkte-Liste

Liebe CoMa's

ihr kennt bereits aus dem letzten Semester die Abfrage eures (aktuellen?) 
Punkte-Standes aus dem Unix-Pool.
Diesen Service können wir ab sofort auch wieder bieten.
Dazu müsst ihr wieder nur im Unix-Pool mit eurem CoMa-Account eingeloggt sein 
und dann den Befehl

~co2-001/show_status

ausführen. 

Viel Spaß

Andreas


From: co2-001@pool.math.tu-berlin.de
Date: Fri May 2 17:09:19 MEST 2003
Subject: Update & 2. ProgAufg

Liebe CoMa-Studenten,

es gibt jetzt die 2. Programmieraufgabe auf der Homepage.
Es geht noch um ein paar kleinere Klassen, die ihr schreiben 
sollt, alles Vorbereitung zur 3. Programmieraufgabe. 
Genaueres steht auf der Homepage.

Wichtig ist, dass ihr zuerst die aktuellste Version unserer 
Packages installiert. Löscht dazu alles, was in den packages- und
class-Verzeichnissen unterhalb von ccc und comaawt steht.
Kopiert euch die Dateien dann neu von uns und übersetzt sie.

Das vorherige Löschen ist hierbei wirklich wichtig, da sonst noch
etwas alter Müll übrigbleibt, der beim Compilieren zu Problemen
führen kann. Passt aber auf, dass ihr keine selbstgeschriebenen 
*.java-Dateien mit löscht. (Die haben deshalb nichts in unserem 
package-Verzeichnis zu suchen!)

Wenn ihr unter Linux (z.B. Unix-Pool) im Probleme habt, die Pakete 
von uns zu compilieren, dann hilft vielleicht folgendes:

Kopiert das Makefile von uns:
> cp ~co2-001/Makefile ~/
und compiliert die packages so:
> cd ~/
> make cleanccclib
> make all
Das sollte gehen.
Ihr solltet jetzt euren selbstgeschriebenen Code neu compilieren,
falls ihr ihn auch in das classes-Verzeichnis kompiliert habt.

Die ContainerApplication sollte jetzt auch nicht mehr zu gross sein,
sondern eine angenehme Größe haben. Sobald wir herausfinden, wie 
wir Java überreden können, sie in Bildschirmgröße auszugeben, gibt 
es nochmal ein kleines Update, bis dahin diese Zwischen-Lösung.
Falls ihr eine andere Standard-Größe wüscht, sucht ihr in der Datei
packages/comaawt/ContainerApplication.java
die Zeile
setSize(800,600);
und passt die Werte an.

So, das war's erst mal von mir.

Schönes Wochenende
Andreas


From: co2-001@pool.math.tu-berlin.de
Date: Fri May 2 17:47:27 MEST 2003
Subject: Volles Bild bei ContainerApplication

Liebe CoMa-Studenten,

ein Nachtrag zur ContainerApplication. 

Ab jetzt sollte sie Standardmäßig den Bildschirm fast komplett 
ausfüllen (modulo Window-Manager bei Unix-artigen Systemen). 
Unter einigen Windows-Versionen tritt sie jetzt im Vollbild-Modus 
in Erscheinung ( - denke ich ;-) )

Was eben über das setSize gesagt wurde -- vergesst es!

Damit verabschieden wir uns recht herzlich von allen Rechnern, 
auf denen JDK 1.3.x oder älter installiert ist, denn volle
Bildschirmgröße geht erst ab JDK 1.4. Vielen Dank an die 
Java-Entwickler!!!

Damit scheiden insbesondere die so liebgewonnenen AIX-Rechner im 
oberen Teil des Unix-Pools (c81 - ...) als CoMa-Rechner aus!!!
Sagt das bitte bei der Anmeldung im Unix-Pool an! 
Falls es euch dann doch an die alten Schnecken verschlägt, geht bitte 
mittels 
ssh c32 -l tadm 
in eurem Arbeits-xterm auf eine der Linux-Kisten!!!

Wer noch eine alte JDK-Version auf seinem Rechner hat:
Fragt mal rum, wer noch eine CoMa-CD vom ersten Semester zu Hause hat.
Ich habe leider nur noch eine, die verleihe.
Für alte Mac-Systeme (vor MacOS X) sehe ich allerdings schwarz...

So, das war's jetzt von mir für heute.

Bis bald und nochmals schönes Wochenende
Andreas



From: co2-001@pool.math.tu-berlin.de
Date: Sun May 4 22:07:57 MEST 2003
Subject: ContainerApplication: Noch ne Verbesserung

Liebe CoMa's,

es gibt noch einmal eine Verbesserung an der ContainerApplication.
Ab sofort werden zwei übliche Fehler von der Application
direkt erkannt. Bisher wurden nur kryptische Exceptions der Application
ausgegeben, die nicht auf die Ursache schliessen lassen. 

Falls ihr die verbesserte Fehler-Hilfe nutzen wollt, kopiert bitte 
nochmals die aktuellste Version der Application.

Dann noch einen schönen Abend. Bis morgen zur RechnerBetreuung.

Andreas



From: co2-001@pool.math.tu-berlin.de
Date: Tue May 6 19:06:28 MEST 2003
Subject: Debuggen mit der ContainerApplication

Liebe CoMa's,

auch auf die Gefahr hin, dass ich nerve... ;-)

Richtig geraten: Es gibt neues in der ContainerApplication.

Falls die Application mit eurer Klasse nicht starten will, so gebt bitte die Option "-d 1" an.
Dies erzeugt einige Debug-Ausgaben auf der Console, die vielleicht dabei helfen, den Fehler
zu lokalisieren.
Ist die Application schon gestartet, aber es tauchen irgendwelche "Abstürze" auf, so sieht man 
nun vielleicht ebenfalls mehr. 

Ihr könnt nach dem Programmstart auch im Menü Debugging->Debug output->DebugFrame
ein Fenster erzeugen, in das alle weiteren Debugausgaben geschrieben werden. Hier werden 
Exceptions in einer gekürzten, übersichtlicheren Form ausgegeben. 
Die "grosse" Exception-Ausgabe kann man im Übrigen jetzt auch in diesem Menü ein-/ausschalten.
Das entschricht dem setzen (oder nicht) der Option -e.

Genauere Debug-Ausgaben werden sicherlich im Laufe der Zeit folgen, je nachdem, welche Fehler
so gesucht werden müssen... ;-)

==============
|| WICHTIG: ||
==============

Damit ihr euch das ewige neu kopieren etc. spart bzw. vereinfacht, befolgt bitte folgende Schritte:

1. Jeder selbstgeschriebene Code muss in einem Verzeichnis 
	~/programme/programmX/
   oder so ähnlich stehen. Verschiebt eure eigenen Java-Dateien, falls noch nicht geschehen.

2. Löscht DANACH das gesamte Verzeichnis ~/packages und seine Unterverzeichnisse:
	rm -rf ~/packages

3. Kopiert euch von uns das Makefile:
	cp ~co2-001/Makefile ~/

4. Führt  folgenden aufruf aus:
	make cleanccclib ccclib

Immer wenn es von uns etwas neues gibt, braucht ihr nun nur noch 
	make ccclib
ausführen, und schon habt ihr die aktuellen .class-Dateien.

Wer zu Hause arbeitet und trotzdem auf dem aktuellsten Stand bleiben will, muss allerdings weiterhin 
die aktuellsten Dateien herunterladen.

 
So, dann macht's mal gut.

Andreas

P.S.: das vierte Übungsblatt ist seit heute mittag online. Gestern hab ich's nicht geschafft 
      (wegen 7 Std. Rechnerbetreuung...)


From: co2-001@pool.math.tu-berlin.de
Date: Mon May 12 10:54:14 MEST 2003
Subject: Stack & RootPathIterator

Liebe CoMa's,

ihr habt Schwierigkeiten, in eurem RootPathIterator euren eigenen Stack zu verwenden? 
Kein Wunder, ich hab da etwas kleines nicht bedacht....

Hier zwei Lösungsmöglichkeiten:

1. Ihr schreibt in die Stack-Klasse und alle von ihr verwendeten eigenen Klassen
   (Liste, ListNode, ListIterator) folgende erste Zeile:
	package mycoma;

   Nun übersetzt ihr all diese Dateien mittels
	java -d ~/classes MyStack.java MyList.java MyListNode.java MyListIterator.java

   Im RootPathIterator schreibt ihr nun noch
	import mycoma.*;

   Jetzt sollte es gehen...

2. Ihr verwendet doch (ausnahmsweise) den java.util.Stack.

Ach so, wenn ihr eure Iteratorn testen wollt, dann tut es einfach mal mit dem Aufruf:

	java comaawt.ContainerApplication ccc.bintree.RandomTree -i RootPathIterator 
	     BTLeafIterator BTPreorderIterator -d 1
	     
Gruß
Andreas



From: co2-001@pool.math.tu-berlin.de
Date: Tue May 27 11:41:13 MEST 2003
Subject: toString für Bäume

Liebe Studenten,

falls euer Huffman-Algorithmus nicht so will, wie er soll, ist es ganz hilfreich,
sich mal den Baum ausdrucken zu lassen. Dazu braucht man eine geeignete 
toString()-Methode.  

Hier ist eine Möglichkeit (entnommen aus der ContainerApplication):

public String toString(){
    StringBuffer s = new StringBuffer();
    s=s.append("Inorder:\n-------\n");
    try{
	for (ConstForwardIterator it=getConstIterator();
	     !it.isAtEnd();
	     it.increment()){
	    for (int i=0;i<getDepth(it); i++)
		s=s.append("|    ");
	    s = s.append(it.getData()==null? "null":it.toString());
	    s = s.append("\n");
	}
    }
    catch (RuntimeException e){
	e.printStackTrace();
    }
    
    return s.toString();
}


Baut sie einfach in eure Baum-Klasse ein.

Viele Grüße

Andreas



From: awerner@math.tu-berlin.de
Date: Tue May 27 13:53:34 MEST 2003
Subject: paufgabe4

Hallo allerseits...

fuer alle, die schon an der 4. Programmieraufgabe feilen und darauf gekommen
sind, dass man Objekte nicht mit < und <= etc. vergleichen kann, wurden im
Aufgabentext noch ein paar Hinweise aufgenommen. In Kurzform: Der Suchbaum
sollte einen Comparator bekommen, mit dem man die gespeicherten Daten
vergleichen kann. Die (etwas) ausfuehrlichere Variante findet sich natuerlich
auf der homepage.

Viele Gruesse, Spass und Erfolg...

Axel.




From: awerner@math.tu-berlin.de
Date: Fri May 30 16:37:49 MEST 2003
Subject: nochmal_paufgabe4

Hallo nochmal...

noch ein paar Hinweise zur 4.Programmieraufgabe, die vielleicht von allgemeinem
Interesse sein koennten:

Ergaenzend zur Dokumentation des Interfaces Checkable sollte gesagt werden,
dass die Methode checkInvariant() bei Verletzung der Invarianten auf jeden Fall
eine InvariantViolatedException werfen sollte, und zwar in Verbindung mit einer
aussagekraeftigen(!) Meldung; der Vorteil ist vor allem, dass man dann genauer
nachvollziehen kann, bei welchem Test etwas nicht stimmte.

Zur Verwendung der CheckPolicy schaut Euch das Beispiel zur Dokumentation des 
Interfaces an -- insbesondere wie die methode checkInvariant() dort aufgerufen
wird. Ausser bei der Erstellung von Iteratoren macht es vor allem auch Sinn, am
Ende des Object-Array-Konstruktors von ConstBinTree die Invariante zu checken,
sowie natuerlich nach dem Einfuegen und Loeschen im SearchTree.

Viele Gruesse,

Axel.




From: co2-001@pool.math.tu-berlin.de
Date: Mon Jun 2 11:19:39 MEST 2003
Subject: Neue ContainerApplication

Liebe CoMa's,

es ist mal wieder so weit: es gibt eine gaaaanz neue Version der ContainerApplication!!!

Allerdings handelt es sich um eine noch nicht bis ins kleinste getestete Entwickler-Version,
die zwar eventuell noch ein paar Fehler enthält, aber dennoch viel einfacher zu bedienen ist
(nach meiner Meinung).

Da es noch keine endgültigeVersion ist, findet sich die neue Application in einem neuen 
Package mit dem Namen comaawtdev. Der Programmaufruf hat die selben Optionen wie bisher.

Um die neue Application zu benutzen müsst ihr in eurem Wurzelverzeichnis einmal 

make ccclib 

ausführen und die Application dann mit 

java comaawtdev.ContainerApplication ..........

starten. Was sofort auffällt, ist, dass die Auswahl der meisten Klassen nun im 
"Settings"-Menu erfolgt und das Plugin-Panel verschwunden ist. Plugins werden nun in einem 
eigenen Menü gestartet.
Im File-Menü gibt es unter anderem die Möglichkeit neue Container zu erzeugen.

Ich wäre euch dankbar, wenn ihr ab sofort die neue ContainerApplication verwenden würdet.
Bitte meldet mir aber sämtliches merkwürdiges Verhalten, also insbesondere:

- Wann werden welche Exceptions aus der Application geworfen, an denen ihr keine Schuld habt?
- Welche Fehler in Euren eigenen Klassen führen zu welchem Verhalten der Application?
- Welche Fehlermeldungen gibt die Application, obwohl ihr gar nichts bzw. etwas ganz 
  anderes Falsch gemacht habt? 
- etc.


Ach ja, ihr könnt zwar alle bisher bekannten Plugins weiter verwenden, aber für alle 
Pile-Klassen (Stack, Queue, PriorityQueue, ...) gibt es ein neues, besseres Plugin:
comaawtdev.PileManipulation (statt ccc.util.PileManipulation)

Vielen Dank für Eure Mithilfe

Andreas



From: awerner@math.tu-berlin.de
Date: Tue Jun 3 14:27:44 MEST 2003
Subject: Uebung_07

Hallo...

eine Fehler auf dem 7. Uebungsblatt, auf den ich gerade aufmerksam gemacht
wurde: in Aufgabe 36.b) (iii) muss es natuerlich heissen: "fuer alle schwarzen
Knoten z"! In den weiteren Teilen kann (und muss) man natuerlich die Ergebnisse
der vorherigen Teilalgorithmen verwenden -- so z.B. in Teil c) den Knoten y,
den man in Teil b) gefunden hat.

Zur Rot-Schwarz-Baum-Programmieraufgabe: Da fuer Rot-Schwarz-Baeume
Doppelrotationen nicht explizit benoetigt werden, muessen sie auch nicht
unbedingt mit implementiert werden. Wer das trotzdem machen moechte: eine
Doppelrotation nach links am Knoten x ist einfach die Ausfuehrung einer
Rechtsrotation am Knoten x.right, gefolgt von einer Linksrotation am Knoten x;
entsprechend symmetrisch funktioniert die Doppelrotation nach rechts.

Viel Erfolg...

Axel.



From: co2-001@pool.math.tu-berlin.de
Date: Thu Jun 19 18:42:10 MEST 2003
Subject: Folien aus der Übung

Hallo CoMa's,

die Folien aus Martino's Hashing-Übung vom Dienstag sind jetzt auf der
CoMa-Homepage.

Schönen Abend

Andreas


top top
zuletzt bearbeitet: Tue Sep 8 2009, zuletzt erstellt: Tue Sep 8 2009
Jens Schulz <jschulz at math.tu-berlin.de>
Validate HTML