Übung 0 - pelzflorian.de

Zeitplan
Übungen
Abgabegruppen bilden
Entwurf und Analyse von Algorithmen
Übung 0
Florian Pelz
E-Mail: [email protected]
XMPP: [email protected]
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Fragen stellen!
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Heute…
Zeitplan
Übungen
Abgabegruppen bilden
Zu Beachten
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Übungen
• Alle in richtiger Übung? Andere mittags 56-230, 56-232 /
nachmittags 52-207.
• Im OLAT angemeldet? Dort Mailadresse hinterlegt?
• Keine Anwesenheitspflicht, aber -empfehlung.
• Keine Tracks.
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Zu Beachten
• 12 Übungsblätter? Oder 13?
• Ausgabe Donnerstag → Abgabe Donnerstag“ →
Besprechung Donnerstag
”
• In Vierergruppen abzugeben.
• 70% der Punkte aller Nicht-Bonus-Aufgaben nötig.
• Aufholen mit Bonus-Aufgaben möglich.
• Wer die Zulassung schon hat, sinnvoll mitmachen oder
separate Gruppe.
• Von Hand bzw. gedruckt und dann getackert oder digital per
Mail als PDF oder Textdatei (gerne mit LATEX geschrieben).
Zeitplan
Übungen
Abgabegruppen bilden
Abgabegruppen bilden!
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Zu Beachten
• Es gibt ein TCS Cheat Sheet“.
”
• Unser Pseudo code-Stil: Mini-C++“ / C mit Referenzen,
”
Methoden von Klassen“.
”
• Wir sind nicht kleinlich bei Syntax – wenn verständlich!
• Antworten begründen!
• Schwer verständlichen Code bitte kommentieren!
• Nicht so: https://en.wikipedia.org/wiki/
Obfuscation_%28software%29
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
• Keine funktionale Programmierung!
Definition pred (n : nat) : nat :=
match n with
| O => O
| S n' => n'
end.
• Kein Algorithmus.
• Laufzeit unklar.
• Nicht eindeutig auf RAM (mit Arithmetik) reduzierbar.
• Stattdessen so:
int pred (int n) {
assert (n >= 0);
if (n == 0) return 0;
else return n - 1;
}
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
int half (int n) {
return n / 2;
}
void main () {
int a = 10;
a = half (a);
printf ("a␣ist␣%d\n", a);
}
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
void make_half (int &n) {
n = n / 2;
}
void main () {
int a = 10;
make_half (a);
printf ("a␣ist␣%d\n", a);
}
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
void make_half (int *n) {
*n = *n / 2;
}
void main () {
int a = 10;
make_half (&a);
printf ("a␣ist␣%d\n", a);
}
Zu Beachten
Zeitplan
Übungen
Abgabegruppen bilden
Zu Beachten