|
Computerorientierte Mathematik |
![]() |
|
Inhalt
|
Mailarchiv zur Computerorientierte Mathematik IHier 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
EmailsFrom: co1-003@pool.math.tu-berlin.de Date: Subject: fehlende Matrikelnummern Hallo allerseits, es gibt einige von euch, die noch keine Matrikelnummer haben. Schreibt dann bitte "000 000" in die Datei "Members". Sobald ihr die Matrikelnummer mitgeteilt bekommt, tragt diese bitte in der Datei "Members" ein und schickt uns eine eMail mit dem Subject "Matrikelnummer". Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Quiz
Hallo allerseits,
hier die falsche vollstaendige Induktion aus der Uebung
als Quiz. Aufloesung in der naechsten Uebung.
Behauptung: Wenn sich unter n Tieren ein Elefant befindet,
dann sind alle diese n Tiere Elefanten.
Beweis durch vollstaendige Induktion ueber n:
IA: Wenn unter 1 Tier sich 1 Elefant befindet,
dann sind alle 1 Tiere Elefanten.
IS: n --> n+1
IVor: Sei eine beliebige, aber feste Zahl n.
Wenn sich unter einer beliebigen Gruppen
von n Tieren 1 Elefant befindet, dann sind
alle Tiere dieser Gruppe Elefanten.
IBeh: Wenn sich unter einer beliebigen Gruppen
von n+1 Tieren 1 Elefant befindet, dann sind
alle Tiere dieser Gruppe Elefanten.
Bew: Sei gegeben eine Gruppe von n+1 Tieren,
wobei mindestens ein Tier ein Elefant ist.
Wir stellen alle $n$ Tiere in eine Reihe.
OBdA. ist ein Elefant unter den ersten n Tieren.
Nach IV sind alle ersten n Tiere Elefanten.
==> Unter den letzten n Tieren ist ein Elefant.
Nach IV sind alle letzten n Tiere Elefanten.\\
==> Alle n+1 Tiere sind Elefanten.
Was ist falsch?
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: deadline fuer Members-Datei Hallo, die "dead line" zur Erstellung der korrekten "Members"-Datei ist heute, 16:00 Uhr ! Dies betrifft auch die Gruppen, die sich gestern neu gebildet oder geandert haben. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Coma-CD vergriffen Liebe Coma-Studenten, Andreas Fest hat alle Coma-CDs verkauft, weitere werden nicht (von uns) gebrannt. Da 120 im Umlauf sind, sollte es kein Problem sein, sich von anderen Coma-Studenten eine CD auszuleihen oder zu brennen. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Tipps zur 1. PAufg.
Hallo allerseits,
einige Tipps zur 1. Programmieraufgabe:
a) Es gibt in Java den Operator ^ fuer
Integers, aber dieser Operator berechnet
fuer "a^3" *nicht* "a*a*a", sondern
die xor-Verbindung der Bits der beiden Zahlen!
Also, bitte nicht "a^3" verwenden.
b) Die leidige "NumberFormatException" koennt
ihr wie folgt "loswerden":
public static void main ( String[] args ) {
try {
int n = Integer.getInt(args[0]);
...
}
catch(NumberFormatException e) {
System.out.println("Not a number!");
}
}
Erklaerung folgt in der Uebung/VL!
c) In Zunkunft sollen Eure Programme alle
moeglichen Eingabefehler sinnvoll behandeln
und geeignet darauf reagieren.
Fuer Aufgabe 1 heisst dies, dass Ihr testet,
ob die Laenge 1 ist, oder nicht.
d) Lest Euch unsere Programmierregeln (im WWW)
durch, und versucht diese zu verstehen und
(soweit moeglich) umzusetzen.
Viel Erfolg,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Tipps zur 1. PAufg. Hallo allerseits, der Fehlerteufel hat sich eingeschlichen: Es heisst int n = Integer.parseInt(args[0]); und nicht ".getInt(..)". Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: 2. Programmieraufgabe im Netz Hallo allerseits, die 2. Programmieraufgabe findet ihr auf unserer WWW-Seite: http://www.math.tu-berlin.de/CoMa/coma1.WS02/#Uebungen Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Tutorien: ab 8.11. Hallo, die Tutorien starten ab Freitag, den 8.11.2002. Bis dahin wird die Rechnerbetreuung aufgestockt, d.h. die Tutoren sind zum Termin ihres Tutoriums im Pool zu finden! Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Tipp zur 2. P-Aufgabe (wirklich korrigiert!) Hallo allerseits, ein kleiner Tipp zur 2. Programmieraufgabe. Tippt unbedingt java Match abc??f abc ef statt java Match "abc??f" "abc ef" Erklaerung: Die Shell verwendet auch die Wildcards '?' und '*'. Wenn z.B. der Befehl java Match abc??f abcdef eingegeben wird, dann merkt die Shell, dass "abc??f" Wildcards enthaelt. Dann wird nach allen Datei in dem aktuellen Verzeichnis gesucht, die diesem Ausdruck entsprechen, und "abc??f" durch Liste aller dieser Dateien ersetzt! Leerzeichen haben ebenfalls eine besondere Bedeutung: sie trennen zwei Argumente. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Tipp zur 2. P-Aufgabe (wirklich korrigiert!) Hallo allerseits, in der letzten eMail war es leider vertauscht. Daher nochmal: Ein kleiner Tipp zur 2. Programmieraufgabe. Tippt unbedingt java Match "abc??f" "abc ef" statt java Match abc??f abc ef Erklaerung: Die Shell verwendet auch die Wildcards '?' und '*'. Wenn z.B. der Befehl java Match abc??f abcdef eingegeben wird, dann merkt die Shell, dass "abc??f" Wildcards enthaelt. Dann wird nach allen Datei in dem aktuellen Verzeichnis gesucht, die diesem Ausdruck entsprechen, und "abc??f" durch Liste aller dieser Dateien ersetzt! Leerzeichen haben ebenfalls eine besondere Bedeutung: sie trennen zwei Argumente. Gruss, Alex From: co1-002@pool.math.tu-berlin.de Date: Subject: Anmerkungen zu Theorieblatt 3 Liebe Comas, leider gibt es erst jetzt Praezisierungen zum dritten Uebungsblatt. Einiges versteht sich eigentlich von selbst, anderes wollten wir euch eigentlich bereits frueher mitteilen... Aufgabe 7 Ein besserer Aufgabentext waere gewesen: "Zeigt, dass sich das Maximum von n>=2 Zahlen darstellen lässt durch Maxima zweier Zahlen. Beweist dazu die folgende Formel und zeigt unter Verwendung dieser Formel mit Hilfe vollständiger Induktion die Korrektheit der Behauptung." Aufgabe 8 Ihr duerft das euch uebergebene Array *nicht* veraendern (Zu- weisungen der Art arr[0]=arr[i] sind also tabu!) und auch *kein* neues Array erzeugen (int[] tmp=new int[arr.length] auch tabu!). Aufgabe 9 Gemaess Uebung halten wir es fuer eine angemessene Beantwortung der Aufgabe, wenn ihr mathematische Summenformeln aufstellt, die die counter-Ergebnisse ergeben, und ihr dann Beziehungen zwischen den Laufindices bzw. Ergebnissen eurer Summenformeln und den im Code auftretenden Variablen herstellt. Sorry vor allem fuer die zu spaete Klarstellung der Aufgabe 7. Bis naechste Woche, Christian From: co1-002@pool.math.tu-berlin.de Date: Subject: Nachtrag Nachtrag Blatt 3
Ich nochmal.
Damit bei euch nicht allzu grosse Irritationen die Punktverteilung
betreffend entstehen, moechte ich kurz die gestrigen Anmerkungen
zum dritten Uebungsblatt praezisieren.
Der Hinweis zu Aufgabe 9 sollte es lediglich euch und den Tutoren
erleichtern, euch gegenseitig besser zu verstehen. Auswirkungen
auf die Punktvergabe ergeben sich also ausdruecklich nicht.
Bei Aufgabe 8 ist der 3 Punkte werte Korrektheitsbeweis nicht von
dem Nachtrag betroffen, Stichwort "Folgefehler". Lediglich im
ersten Teil muessen wir euch dazu erziehen, Eingabedaten nur dann,
wenn es explizit erlaubt bzw. gefordert ist, zu veraendern. Ei-
gentlich duerfte bei Manipulation der Uebergabeparameter nicht
mehr die halbe Punktzahl erreichbar sein. Da unsere Anmerkung
leider erst gestern kam, sollen diesmal noch ausnahmsweise bis
zu 1.5 der 2 Punkte erreichbar sein, wenn ihr das Array veraen-
dert und die Methode ansonsten korrekt funktioniert.
Da bereits in der gedruckten Formulierung von Aufgabe 7 das ei-
gentliche Ziel der Aufgabe steht,
("Zeigt, Zeigt, dass sich das Maximum von n>=2 Zahlen darstellen
lässt durch Maxima zweier Zahlen.")
haben wir euch im zweiten Satz "lediglich" den Weg nicht sauber
aufgezeigt. Die zu beweisende Aussage bleibt jedoch die selbe.
Eigentliches Ziel dieser Aufgabe war es, Induktion einmal an-
ders zu betreiben (ohne Summenzeichen oder for-loop), was mit
mind. drei Punkten honoriert werden sollte. Der fuer den Induk-
tionsschritt hilfreiche Zusammenhang auf dem Blatt waere als
Hilfsmittel maximal zwei Punkte Wert gewesen. Da ihr jedoch auf
eine falsche Faehrte gelockt worden sein koenntet, sollen auch
diejenigen, die die eigentliche Aussage (s. Zitat oben) nicht
explizit (per Induktion) nachweisen, bis noch zu drei Punkte
erreichen koennen, um im Semesterschnitt nicht durch unser Ver-
schulden "ueber Par" (wie der Golfer sagen wuerde) zu geraten.
Alle Klarheiten beseitigt?
Christian
From: co1-002@pool.math.tu-berlin.de Date: Subject: Schoene Gruesse... ... vom Fehlerteufel! Keine Sorge, diesmal (bislang zumindest) ein eher harmloser Fehler, der zudem rechtzeitig von einem eurer Kommilitionen gemeldet wurde. In Aufgabe 10 solltet ihr Boolean durch Byte ersetzen. Gutes Gelingen, Christian From: co1-003@pool.math.tu-berlin.de Date: Subject: prog3
Liebe Mitstreiter,
nach reiflicher Ueberlegung macht fuer das leere
Suchpattern ("") nur Sinn, dass es von *keiner*
Zeile gematcht wird. Denn: Wir suchen in Zeilen
nach Woertern, die mit dem Pattern exakt ueber-
einstimmen. Der StringTokenizer sorgt allerdings
dafuer, dass es in keiner Zeile leere Woerter
geben kann, die mit Pattern "" uebereinstimmen
koennten.
Um die Ausgabe von check_prog3 besser verstehen
zu koennen, solltet ihr mal
man diff
eingeben. Wir nutzen ausdruecklich dieses nuetz-
liche Kommando.
Frohes Schaffen weiterhin,
Christian
From: co1-003@pool.math.tu-berlin.de Date: Subject: 3. Programm: Gliederung in Methoden
Hallo allerseits,
in der Aufgabenstellung fuer das 3. Programm
stand:
Wir empfehlen euch, euer Programm (mindestens)
^^^^^^^^^^
in folgende Methoden zu gliedern...
Vegesst "empfehlen" --- ihr *muesst* unbedingt
das Programm in die angegeben Methoden gliedern !!!!
(Zusaetzliche methoden sind natuerlich erlaubt.)
Dies ist keine Bedingung um euch zu quaelen, sondern
um zu verhindern, dass ihr euch in eurem Code "verlauft".
Dies soll schon vorgekommen sein. ;)
Zuer Behandlung der Streams: Kopiert unbedingt
"WC.java" und fuegt eure "match*"-Mehtoden ein.
Dann funktioniert die Behandlung der Streams sofort.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: 3. Programm: Fristverlaengerung Hallo allerseits, wir verlaengern die Bearbeitszeit fuer das 3. Programm. Neuer Abgabetermin ist Montag, den 25. 11. bis spaetestens 14:00 Uhr Dies ist als Reserve zu verstehen. Wir gehen davon aus, dass ihr Donnerstag und Freitag mit Hochdruck an dem Programm arbeitet -- und falls moeglich schon Donnerstag/Freitag abnehmen lasst, damit die Abnahmen sich nicht am Montag haeufen. Jeder muss sich am Montag vor 13:00 Uhr anmelden fuer die Abnahme (und nicht erst um 5 vor 2). Ach, aus gegebenen Anlass: Es ist ausdruecklich verboten eine 'StringIndexOutOfBoundsException' oder eine 'ArrayIndexOutOfBoundsException' zu fangen! Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Tipps zum 4. Prog. Hallo allerseits, aus gegebenen Anlass einige Tipps zur 4. Programmieraufgabe: Es sind mehrere Klassen zu schreiben! class ListNode -- schon fertig (VL) interface Stack -- schon fertig (WWW) class StackImpl -- eure Implementation des Stack-Interface, verwendet ListNode class CharAndLine -- eine kleine Klasse, die einen char und ein int speichert. class BracketChecker -- eure Klasse mit main-Methode, verwendet StackImpl und CharAndLine Die Namen fuer eure eigenen Klassen duerfen natuerlich variieren. Die Verwendung von weniger Klassen als die oben angegeben ist jedoch nicht ok. Ebenfalls nicht ok: - Die Verwendung von mehr als einem Stack. - Bei jeder Klammer mehrfach push aufzurufen. Ich hoffe dies hilft beim "Sortieren". Gruss, Alex From: co1-002@pool.math.tu-berlin.de Date: Subject: Punkteliste und Klausur Liebe Comas, ihr werdet verstehen, dass wir uns bei den Klausuren keinen unnoetigen Korrekturaufwand machen moechten. Unnoetig waere der Aufwand zur Korrektur eines Teilnehmers, der in der er- sten Semesterhaelfte nicht mindestens 50% der in den theo- retischen Hausaufgaben erreichbaren Punkte erzielt hat. Ruft dazu bitte VOR DO, 12.12.2002 einmal ~co1-002/status_info auf, um nachzusehen, dass bei euch auch wirklich saemtliche Theorieblaetter (korrekt) eingetragen sind. Wenn ihr euch nicht bis zu BEGINN DER UE DO, 12.12.2002, 12-14 bei uns meldet, dann gehen wir davon aus, dass saemtliche eurer Eintraege sachlich und rechnerisch korrekt sind. Ein schoenes Wochenende wuenscht Christian From: co1-003@pool.math.tu-berlin.de Date: Subject: Gauss Hallo allerseits, die Implementation des Gauss-Algorithmus aus der Uebung findet ihr nun auf unserer WWW-Seite. Achtung: Diese Version des Codes ist noch nicht komplett dokumentiert und es fehlt die ueberarbeitete GaussElimination.getSolution(). Daher: auf der WWW-Seite der COMA ab und zu nach dem Update schauen. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: 5. Programm: Testen
Hallo allerseits,
ihr koennt euren Code fuer die 5. Programmieraufgabe
wie folgt testen:
1. Klassenbibliothek laden
ftp://ftp.math.TU-Berlin.de/pub/Lehre/Computerorientierte_Mathematik/coma1.WS02/ShortestPath_16.12.2002.zip
(nun mit Kommentaren + Test-Klasse)
2. auspacken (unzip ...)
3. eure Implemenatationen dazupacken + kompilieren
Dann koennt ihr
/net/co1/bin/check_prog5
aufrufen.
Dabei wird die neue Klasse CompareShortestPathImplementations
verwendet, welche alle drei Implementationen miteinander
vergleicht. Wenn eine Implementation fehlt, dann gibt dies
nur eine Warnung (nur neu-kompilieren geht nicht).
Falls die u_ij-Werte nicht uebereinstimmen, wird eine
entsprechende Fehlermeldung ausgegeben.
Die Klasse kennt viele Optionen, um mehr Tests/Ausgaben zu machen:
usage: java CompareShortestPathImplementations [options] graph_file
options:
-u print U matrix
-t print Tree matrix
-c print check tree matrix
-r print result (shortest paths/negative cycles)
-T print running times
-h print help -v print version
Sorry, dass diese eMail etwas spaet kommt, aber die Implementation
der Algorithmen kann auch ja auch ohne Testklasse gemacht werden,
oder nicht?
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: 5. Progamm: Instanz
Hallo allerseits,
zum Erzeugen der Kuerzeste-Wege-Instanz auf dem eure
Implementation des Floyd-Warshall einen anderen K\"urzeste-Wege-Baum
liefert als unsere Implementation des Bellman-Ford einige Tipps:
Gesucht ist ein gerichteter Graph mit Kantenlaengen, der die
gewuenschten Eigenschaften besitzt.
Ihr "zeigt" und den Graphen
- als Zeichnung und
- als Input-Datei.
Das Format fuer die Inputdatei ist folgendes:
1. Zeile: Anzahl der Knoten (int)
2. Zeile: Wert fuer "Nichtkanten" (double)
ab 3. Zeile: Kantenlaengenmatrix, Eintraege sind durch
Leerzeichen/Tabulator getrennt.
Bsp.: Ein gerichteter Graph mit 3 Knoten.
0 --- 77 ---> 1
^
| /
| /
5 32
| /
| /
2 <---/
Datei:
3
9
0 77 9
9 0 32
5 9 0
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Abgabe des 8. Blatts Hallo allerseits, um den Vorweihnachts- und Nachtest-Stress etwas zu entschaerfen, kommen wir euch etwas entgegen und geben euch die Moeglichkeit das 8. Uebungs- blatt im neuen Jahr abzugeben: bis Mittwoch, den 8. Januar 2003 vor der VL. Ihr koennt natuerlich auch morgen abgeben. Der Abgabetermin des 9. Blattes ist wie geplant Mittwoch, der 8. Januar 2003 vor der VL. Dafuer ist das 8. Blatt nicht so umfangreich wie ueblich. Der Abgabetermin fuer die 5. Programmieraufgabe verschiebt sich nicht, er bleibt auf Freitag, den 20.12.2002. Abgegeben wird die P-Aufgabe in den *neuen* Gruppen. Daher muss am Donnerstag die neue Members-Datei 'Members2' fertig sein. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Test: Fraction
Hallo allerseits,
auf vielfachen Wunsch die Loesung zur letzten
Aufgabe des Tests:
public class Fraction
{
protected int p;
protected int q; // >0
public Fraction ( int p, int q )
throws IllegalArgumentException
{
if (q <= 0)
throw new IllegalArgumentException("q <= 0");
this.p = p;
this.q = q;
}
public void add ( Fraction r ) {
this.p = this.p * r.q + this.q * r.p;
this.q = this.q * r.q;
}
}
Wird bei Bedarf in den Tutorien besprochen.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: 2. Einsicht Hi, 2. Einsichtstermin: heute, Di, 17.12. ab 17:30 im MA606. Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Gruppen-Neu-Einteilung
Hallo allerseits,
heute findet die "Gruppenneueinteilung" statt.
Ein paar Spielregeln:
- Alle die nochmal in die Ruecksprache muessen
gehen erstmal davon aus, dass es klappt und sie
weitermachen koennen.
- Alle die, die nicht mitgeschrieben haben
(und nicht entschuldigt sind), sind nicht mehr
dabei.
- Ihr koennt voellig neue Gruppen bilden.
Wenn die Zusammenarbeit nicht so richtig geklappt
habt, dann denkt doch mal ueber Wechsel nach.
- Ihr sucht euch selbst neue Gruppenpartner(innen).
Wir stellen heute in der Uebung nur das Forum.
- Die "Eintragung" in die neuen Gruppen findet aus-
schliesslich am Rechner statt: Ihr erstellt bis
spaetestens Donnerstag 18:00 eine Members2-Datei.
- Vor Freitag koennt ihr euch am Rechner nur ueber
die "alten" Gruppenmitglieder anmelden.
(Nur komplett neue Gruppen muessen sich bei uns
melden.)
- Die Abgabe des 5. Programms findet mit der *neuen*
Gruppe statt.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Wiederholungs-Ruecksprachen Hallo allerseits, die Wiederholungs-Ruecksprachen finden statt am Donnerstag, den 9. Januar und Freitag, den 10. Januar. Eintragen koennt ihr euch heute nach der VL, morgen in der Uebung und ab Do, 14:00 Uhr bei Christian. Dauer der Ruecksprache: ca. 15 Minuten. Viel Erfolg, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: 6. Programmieraufgabe Hallo allerseits, die 6. Programmieraufgabe ist im Netz: http://www.math.tu-berlin.de/CoMa/coma1.WS02/program_robot1/ Details morgen in der Uebung. Gruss, Alex From: co1-003@pool.math.tu-berlin.de Date: Subject: Bellman-Ford
Hallo,
falls euch Erstellen der Kuerzeste-Wege-Instanz das Verhalten
des Bellman-ford suspekt erscheint:
Die Grundversion des BF hat eine Laufzeit von n^5.
Wenn der BF in n^4 implementiert wird, wie bei unserer
Implementation, dann muss man darauf verzichten zu
jedem Zeitpunkt die korrekten u_ij^(m) zu haben.
Nur die u_ij^(n-1) = u_ij sind korrekt.
Besonders auffaellig ist das Verhalten auf einem Graphen,
der nur aus einem Pfad besteht:
0 --> 1 --> 2 --> .... --> n-1
Hier berechntet die n^3-Implementation des BF die Distanzen
u_ij schon in der 1. Iteration der aeusseren Schleife, und nicht
erst in der letzten.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Roboter
Hallo allerseits,
bei der 6. Programmieraufgabe gibt es 2 Probleme,
die viele Gruppen uebersehen haben:
1) MyMazeMatrix.getFreeCells(n)
wird oft wie folgt implementiert:
public MazePosition[] getFreeCells(int n) throws MazeMatrixException {
...
for (int k=0; k < n; ++k)
do {
int i = (int)(Math.random()*rows);
int j = (int)(Math.random()*cols);
while(!feld leer und es wurde noch nicht ausgewuerfelt);
...
}
Dabei ergibt sich folgendes Problem: Ihr koennt nicht garantieren,
dass die innere Schleife terminiert. (Stellt euch vor die
Matrix habe die Groesse 10.000 * 10.000 -- und ihr sucht das letzte
Feld...)
Daher folgenden Loesungsansatz: Erst alle freien Felder ermitteln
und dann von diesen welche auswuerfeln. Achtet dabei darauf,
dass nicht Felder mehrfach "erwischt werden".
2) Beim Fuellen der Matrix mit den MazeObjects darf kein Code
kopiert werden! (--> Programmierregeln: keine Methode laenger als
eine Bildschirmseite + keine Code-Kopien.)
Lieber in Methoden auslagern, oder Schleifen/Arrays
verwenden.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: 8. PAufgabe: SortAlgorithm-Interface
Hallo allerseits,
bei der Aufgabenstellung zur 8. Programmieraufgabe
ist uns ein Fehler unterlaufen. Das Interface SortAlgorithm
muss wie folgt aussehen:
/** An algorithmic class which implements a single
* algorithm which sorts a given array.
*/
public interface SortAlgorithm {
/** Sorts an array of given items "in-place".
*
* @param items homogeneous array of objects
* @param comparator the 'order relation' to be used
*
* @exception WrongSortTypeException iff a comparision method
* throws because the array is not homogeneous.
*/
public void sort(Object[] items, Comparator comparator)
throws WrongSortTypeException;
}
Wir haben das Design geaendert seit dem letzten Jahr und trennen
nun die Daten (Object[]) und die Ordnungsrelation (Comparator).
(In euren Loesungen dar kein 'Comparable' auftauchen; fallt nicht
auf angebliche Musterloesungen aus den vergangenen Semestern rein.)
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Scheinbed. fuer ITM/PI Liebe PI/ITM-ler, Christian Liebchen hat bei den entsprechenden Pruefungsobmaennern (Herrn Brunk/Herrn King) nachgefragt. Ergebnis: Sowohl fuer PI, als auch fuer ITM, ist ein benoteter Uebungsschein zwingende Voraussetzung zur muendlichen Vordiplomspruefung. Also: Ruecksprache machen! Gruss, Alex From: co1-002@pool.math.tu-berlin.de Date: Subject: Uebung 04.02.2003 Liebe Comas, folgende Nachtraege zur Grossen Uebung von gestern: - Auf dem Informationsblatt stand bereits zu Semesterbeginn, dass sich "Die Zensuren f\"ur benotete \"Ubungsscheine" u.a. "aus der in den theoretischen Aufgaben erreichten Punktzahl" zusammen setzen. - Die Loesung von Aufgabe 36(f) war THETA(log(n)). Der Hinweis war derart zu verstehen, dass ihr zuerst mit Zweiterpotenzen von Zweiterpotenzen ansetzt, also 2 hoch 8, 2 hoch 16, 2 hoch 32 betrachtet, um Regel- maessigkeiten aufzuspueren. Dann laesst sich die Ver- mutung erneut unmittelbar durch Einsetzen nachweisen. Alles Gute, Christian P.S.: Nicht vergessen: http://www.math.tu-berlin.de/Vorlesungen/WS02/CoMa.1/GrosseUebungen/Uebung030204/Find/Find.html und http://www.math.tu-berlin.de/Vorlesungen/WS02/CoMa.1/GrosseUebungen/Uebung030204/HexIntTextField/index.html ... From: co1-003@pool.math.tu-berlin.de Date: Subject: Regeln fuer die Abnahmen
Hallo allerseits,
morgen ist der Abgabetermin fuer die
letzte Programmieraufgabe. Um den Ansturm
irgendwie bewaeltigen zu koennen, haben wir
uns etwas ueberlegt:
1. Anmelde-Fristen:
Freitag, 7.2. bis 12:00 Uhr
Donnerstag, 6.2. bis 16:15 Uhr
Wer sich bis zu diesem Zeitpunkt
nicht angemeldet hat, bekommt keinen
Termin zur Abnahme.
2. Anmeldung: erfolgt nicht bei den
Betreuern, sondern am "weissen Brett".
Es gibt dort 2 Spalten:
- Abnahmen
- Probleme/Fragen
Ihr tragt euch dort ein, wir "holen"
uns dort die Gruppennummern ab.
Wer das Programm noch nicht fertig hat,
traegt sich unter "Probleme/Fragen" ein.
Es gibt keine pauschalen Verlaengerungen
ohne ein Gespraech ueber den Stand des
Programms.
Und bitte: Kommt nicht Donnerstag um 5 oder Freitag mittag
mit "Mein Programm funktioniert nicht...".
Wenn es Probleme gibt, dann klaert diese unbedingt
am Donnerstag bzw. Freitag frueh (vor 12:00!!!).
Zur Fehlersuche hefen bekanntlich Ausgaben -- und
es gab da mal ein nettes Tool in der Uebung...
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: 8. PAufg: 2 uebliche Fehler
Moin,
ich moechte euch vor zwei ueblichen Fehlern
bei der Implementation der 8. Programmieraufgabe
warnen:
1. "Konvertierung von Strings in Integers
im Comparator".
Wenn ganze Zahlen sortiert werden, dann muessen
diese auch als solche gespeichert werden, d.h.
als Integer. Da jeder Sortieralgorithmus jedes
Element deutlich oefter als einmal "anschaut"
geht die gesamte Laufzeit fuer das Sortieren
drauf. (Schoene Ruecksprachenfrage: Wie
oft betrachtet der ...-Sortieralgorithmus ein
Element?)
Das Argument "das steht ja gar nicht in
der Aufgabenstellung" ist nicht ueberzeugend.
Es ist selbstverstaendlich, dass die Daten
im "best-moeglichen" Format gespeicht werden.
Strings taugen nur dazu Zeichenketten zu speichern.
2. "kopierter Code im Applet/Tester"
... ist klar, oder?
Verpackt alles in geeignete Funktionen --
und kopiert niemals, NIEMALS (!!!) mehr als 5 Zeilen
Code.
Gruss,
Alex
From: co1-003@pool.math.tu-berlin.de Date: Subject: Scheine/WH-Rueckspr
Hallo allerseits,
dies ist bestimmt die letzte eMail von der COMA I.
Meldungen des Tages:
a) Die Scheine liegen im Sekretariat MA6-2 zur Abholung
bereit. Bitte die Oeffnungszeiten beachten.
(Mo/Di/Do/Fr 9:30 - 11:30)
b) Fuer die Wiederholungsruecksprachen liegen
die Listen im Sekretariat aus.
Termine sind Do 10.4. und Fr 11.4.
Viel Erfolg im weiteren Studium,
Euer COMA-Team
| |||||||||||||||||||||
|
|
|