Department of Computer Science | Institute of Theoretical Computer Science | CADMO
Prof. Emo Welzl and Prof. Bernd Gärtner
Informatik für Mathematiker und Physiker (251-0847-00) HS08 | ||||||
Die Prüfung vom 12.2.2010 kann nun eingesehen werden. Melden Sie sich dazu bei Yves Brise an, um einen Termin auszumachen. Ohne Terminvereinbarung wird die Einsicht nicht gew�hrt! Kommen sie zur vereinbarten Zeit in das B�ro von Frau Salow, CAB G19.1. Bitte denken sie auch daran, dass Sie Ihre Legi mitbringen. Die Musterlösung zur Prüfung können Sie hier herunter laden.
Die Challenge 107 bestand darin, ein Programm zu schreiben, mit welchem ein möglichst ansprechendes Lindenmayer Bild erzeugt wird. Wir haben dazu einige schöne Abgaben bekommen und möchten diese der Allgemeinheit nicht vorenthalten. Hier finden Sie die Resultate dieser Arbeit.
Das Skript (auf Englisch) kann hier ([PDF] [PS]) herunter geladen werden. Wer es ausdrucken möchte, kann das an einer der ETH Druckstationen tun. Dazu eignet sich die Version mit zwei Textseiten auf einer A4 Seite ([PDF] [PS]). Dennoch wird die zul�ssige Maximalseitenzahl f�r den kostenlosen Druck �berschritten. Sie k�nnen das Skript also Tranchenweise oder bei einer kostenpflichtigen Stelle ausdrucken.Wenn sie an einer gedruckten Version der Vorlesungsunterlagen (Teil Gärtner) interessiert sind, dann melden Sie sich bitte bei Yves Brise. Es handelt sich dabei um einen Ausdruck der elektronischen Version des Skriptes (nicht der Folien!), die sie auch weiter oben erhalten k�nnen. Die Unterlagen werden zum Selbstkostenpreis von 20.- CHF abgegeben.
Die wöchentlichen Übungen sind (von wenigen Ausnahmen abgesehen) im Skript integriert und werden nicht separat verteilt. Die Lösungen zu allen Aufgaben im Skript werden schrittweise veröffentlicht; nicht nur zu den Aufgaben, die Sie während des Semesters lösen müssen. Dies soll ihnen als Möglichkeit dienen, zum Beispiel zur Prüfungsvorbereitung, noch weitere Aufgaben anzuschauen. Zudem können Sie unter diesem Link die Quelldateien der Programme in den Lösungen herunterladen und alles auf ihrem Rechner ausprobieren; ohne mühsames Abtippen. Unter Material tragen wir nur allfällige weitere Dokumente ein, und die Programme, die Sie während der Vorlesung sehen.
Datum Themen Folien / Handout Übungsaufgaben Lösung Programme
#1 (23.09.2008) Algorithmus, Programm, Registermaschine Kapitel 2 [PDF], (Sieben Wunder der Informatik), Zusammenfassung Registermaschine [PDF] Serie 1 [PDF][PS] Lösung 1 [PDF][PS] [HelloWorld.C]
#2 (30.09.2008) Unendlichkeit,
BerechenbarkeitKapitel 3 [PDF], Kapitel 4 [PDF] (Sieben Wunder der Informatik) Serie 2 [PDF][PS] Lösung 2 [PDF][PS], Aufgabe 3.10 aus "7 Wunder" [PDF]
#3 (7.10.2008) C++: Identifiers, Ausdr�cke,
Variablen, Literale,
Operatoren, erstes ProgrammSlides [PDF] Aufgaben: 1, 2, 7, 8 (je 4 Pkt.),
Challenge (optional): 9, 10 (je 8 Pkt.),
(Abschnitt 2.1.18 im Skript),
Abgabetermin: 14.10.2008Lösungen zu Abschnitt 2.1 [PDF] [power8.C], [power8_exact.C], [integer.h], [garbled.C]
#4 (14.10.2008) Integers, Booleans, Auswertungsreihenfolge Slides [PDF] Aufgaben: 11, 19, 26, 30 (je 4 Pkt.),
Challenge (opt.): 21, 22, 32 (je 8 Pkt.),
Abgabetermin: 21.10.2008Lösungen zu Abschnitt 2.2 [PDF],
Lösungen zu Abschnitt 2.3 [PDF][fahrenheit.C] [limits.C]
#5 (21.10.2008) Kontrollanweisungen Slides [PDF] Aufgaben: 36, 37, 44, 45 (je 4 Pkt.),
Challenge (opt.): 48, 49 (je 8 Pkt.),
Abgabetermin: 28.10.2008Lösungen zu Abschnitt 2.4 [PDF] [collatz.C] [prime.C] [scope.C] [sum_n.C]
#6 (28.10.2008) Fliesskommazahlen Slides [PDF] Aufgaben: 52 a c d, 57, 59, 60 (je 4 Pkt.),
Challenge (opt.): 63, 64 (je 8 Pkt.),
Abgabetermin: 4.11.2008Lösungen zu Abschnitt 2.5 [PDF] [euler.C] [diff.C] [harmonic.C]
#7 (4.11.2008) Felder und Zeiger (I) Slides [PDF] Aufgaben: 65 b, 66, 67, 70 (je 4 Pkt.),
Challenge (opt.): 75, 77 (je 8 Pkt.),
Abgabetermin: 11.11.2008Lösungen zu Abschnitt 2.6 [PDF] [read_array.C] [eratosthenes.C] [eratosthenes2.C]
#8 (11.11.2008) Felder und Zeiger (II) Slides [PDF] Serie 8 [PDF][PS] Lösung 8 [PDF][PS] [threedim_array_init.C] [string_matching.C] [string_matching2.C] [shortest_path.C]
Input data
#9 (18.11.2008) Funktionen Slides [PDF] Aufgaben: 81, 87 (je 4 Pkt.), 89 (8 Pkt.),
Challenge (opt.): 93, 94 (je 8 Pkt.),
Abgabetermin: 25.11.2008Lösungen zu Abschnitt 3.1 [PDF] [callpow.C] [swap_template.C] [sort_array_template.C]
Input data
#10 (25.11.2008) Rekursion (I) Slides [PDF] Aufgaben: 95, 99, 102, 105 (je 4 Pkt.),
Challenge (opt.): 106 (8 Pkt.),
Abgabetermin: 2.12.2008Lösungen zu Abschnitt 3.2 [PDF] [fibonacci.C] [fibonacci2.C] [ackermann.C] [sort_array3.C]
#11 (2.12.2008) Rekursion (II)
Structs
Referenztypen
Operator-ÜberladungSlides [PDF] Aufgaben: 104, 108, 111, 118 (je 4 Pkt.),
Challenge (opt.): 107, 114 (je 8 Pkt.),
Abgabetermin: 9.12.2008Lösungen zu Abschnitt 4.1 [PDF]
Lösungen zu Abschnitt 4.2 [PDF][bush.C] [dragon.C] [lindenmayer.C] [rational.C] [snowflake.C] [userational2.C]
#12 (9.12.2008) Referenzen (const),
Klassen (I),
ZufallszahlenSlides [PDF] Aufgaben: 120, 124, 126, 127 (je 4 Pkt.),
Challenge (opt.): 121, 128 (je 8 Pkt.),
Abgabetermin: 16.12.2008Lösungen zu Abschnitt 4.3 [PDF] [BibliothekBauen.pdf] [Makefile] [clock.C] [random.h] [random.C] [random_pi.C] [loaded_dice.h] [loaded_dice.C] [choosing_numbers.C]
#13 (16.12.2008) Klassen (II) Slides [PDF] Serie 13 [PDF] Lösung 13 [PDF][PS]
Merkblatt zur Vorlesung [PDF] [PS]
Wichtige Unix Kommandos [PDF] [PS]
Termine
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inhalt der Vorlesung
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diskussionsforum
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ArbeitsumgebungFür die Programmieraufgaben stehen etliche Rechner in verschiedenen Räumen zur Verfügung. Eine komplette Liste gibt es hier. Die meisten der PCs sind dualboot Windows/Linux. Informationen dazu gibt es hier. Wenn vorhanden, können natürlich auch eigene Rechner benutzt werden. Wer mit dem Gedanken spielt, sich ein eigenes Notebook anzuschaffen, der sollte einen Blick auf die Neptun Angebote werfen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hinweise zur ÜbungAuf jeder Übungsserie gibt es mehrere Aufgaben, die schriftlich zu bearbeiten und zum angegebenen Termin - meist in der Woche darauf - zu Beginn der Übungsstunde abzugeben sind. Programmieraufgaben senden sie bis zu diesem Termin per E-Mail an den Übungsleiter. Gruppenabgaben wie auch das Einreichen identischer Lösungen sind nicht zulässig. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TestatbedingungenBitte lesen Sie sich die folgenden Absätze genau durch. Es handelt sich dabei um wichtige Informationen bezüglich der Leistungskontrollen. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Prüfung
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Alte PrüfungenAls Vorbereitung auf die Prüfung stellen wir Ihnen hier eine Liste alter Prüfungen und Musterlösungen zu dieser Vorlesung zur Verfügung. Angaben in den Lösungen ohne Gewähr. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
und Links
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Für die graphische Ausgabe verwenden wir die Bibliotheken libwindow und libturtle. Um mit diesen Bibliotheken arbeiten zu können, müssen Sie sie zunächst installieren. Hierzu speichern Sie die Datei libwindow-1.23.tgz in Ihr Heimatverzeichnis. Öffnen Sie ein shell-terminal, wechseln Sie dort in Ihr Heimatverzeichnis, und entpacken Sie die Datei mittels des Kommandos
tar xvzf libwindow-1.23.tgz(Sollte Ihr browser die Datei schon eigenmächtig beim download entpackt haben, schlägt dieses Kommando vielleicht fehl. Probieren Sie in diesem Fall tar xvf ..., d.h. obiges Kommando ohne die Option "z".)Die Bibliothek wird in ein Unterverzeichnis namens libwindow-1.23 entpackt. Wechseln Sie in dieses Verzeichnis. Das weitere Vorgehen ist in einer Datei namens README beschrieben, die sich dort befindet. Übersetzen und starten Sie nach der Installation die Demo-Programme, um sicherzustellen, dass alles korrekt funktioniert.
Achtung!
Wann immer Sie die graphische Ausgabe in einem Ihrer Programme benutzen wollen, müssen Sie in das Verzeichnis, in dem sich Ihr Programm befindet, die Datei Makefile aus dem Verzeichnis libwindow-1.23 hineinkopieren. Sie können dann Ihr Programm mit emacs oder dem Befehl make meinprogramm kompilieren.Achtung!
Wenn Sie unter Cygwin arbeiten und sich Ihr Heimatverzeichnis in einem Ordner befindet, dessen Name Leerzeichen enthält (wie z.B. "Documents and Settings"), so wird das vorgegebene Makefile nicht funktionieren, da Cygwin nicht mit Leerzeichen in Dateinamen umgehen kann. Setzen Sie in diesem Fall bitte explizit die Variable INFO1HOME im Makefile auf das (neue) Verzeichnis, in dem die Bibliothek installiert werden soll, z.B. so:
# directory where you install this library
INFO1HOME = /cygdrive/c/Documents\ and\ Settings/yourhome/libwindow
Cygwin ist eine Unix-artige Umgebung für MS Windows. Eine kurze Installationsanleitung und FAQs findet man hier.Die Kommandozeilen Umgebung starten Sie mit C:\cygwin\usr\X11R6\bin\startxwin.bat (Tipp: Icon auf dem Desktop anlegen). So ein Terminal ist unsere bevorzugte Arbeitsumgebung, von wo aus man z.B. den emacs, den compiler g++ und die erstellten ausführbaren Programme aufruft.
Die Datei .emacs solltet Ihr in Euer Heimatverzeichnis kopieren. (Achtung: Als text-file speichern, nicht etwa im HTML-Format.)Unter Cygwin ist das Heimatverzeichnis im Verzeichnisbaum unterhalb des bei der Installation angegebenen cygwin Wurzelverzeichnisses zu finden, z.B. als c:\cygwin\home\myname.
Wem die Schriftgrösse zu klein ist: Shift-Taste drücken und mit der linken Maustaste in das Emacs Fenster klicken. Es erscheint ein Menu zu Schriftart und -grösse.
Mac OS X 10.5 (Leopard) Benutzer sollten die Developer CD installieren. Emacs ist schon installiert, muss aber als graphisches Programm eingerichtet werden. Hier ist eine ausführliche Anleitung dazu. Falls jemand eine ältere Version von OS X verwendet (Tiger, Panther), dann empfehlen wir die entsprechende Anleitung auf der letztjährigen Kurshomepage.
Last modified: , by Yves Brise. |