IPK Tutorium 04

Corona-Regeln der Universität

  • Kontaktverfolgung über QR-Codes
  • 3G - Pflicht
  • Stichprobenartige Kontrolle
  • Maskenpflicht
QR Code for Registration

https://check-in.uni-heidelberg.de/erfassung/6205.03.104/

Ablauf des TUtoriums heute

  1. Blick auf Blatt 04
    1. Häufige Fehler
    2. Codebeispiele häufige Fehler
    3. Vorstellung der Aufgaben
    4. Fragen zu Blatt 04
  2. Hinweise zu Blatt 05
  3. Arbeitsphase Blatt 05

Blatt 4

  1. Wer hat das Blatt in =< 1h erfolgreich bearbeitet?
  2. Wer hat das Blatt in =< 2h erfolgreich bearbeitet?
  3. Wer hat das Blatt in =< 4h erfolgreich bearbeitet?
  4. Wer hat das Blatt in =< 8h erfolgreich bearbeitet?
  5. Wem hat das Blatt Spaß gemacht?
  6. Wer war hart frustriert?
  7. Wer war frustriert und hatte trotzdem Spaß?

Häufige Fehler bei Blatt 04

Error:

  • Binaries mit im Git (war das letzte mal noch Warning)
  • Folder kompliziert benannt / doppelt- & dreifach abgegeben

-Wall:

  • Doppelte modifikation der Schleifenvariablen
  • verschachtelte if statements und dann ein return true / false
  • (unnötiger) call by value

-Weverything:

  • ungenutzte include-Statements nicht entfernt
  • fehlendes Errorhandling
  • const-Correctness

Beispiel: boolsche funktionen

// Variante 1
// ebenfalls: unnötiger call by value
bool sort_by_angle(point a, point b)
{
    if (a[0] * b[1] - a[1] * b[0] > 0) {
        return true;
    }
    // Split up for readability
    else if (a[0] * b[1] - a[1] * b[0] == 0 && std::abs(a[0]) > std::abs(b[0])) {
        return true;
    }
    return false;
}
// Variante 2
bool sort_by_angle(const coordinate &a, const coordinate &b) {
    return (a[0] * b[1] - a[1] * b[0] > 0) or
           (a[0] * b[1] - a[1] * b[0] == 0 and
            (std::abs(a[0]) > std::abs(b[0])));
}

Beispiel: Iterationsvariable


for (unsigned long i = 2; i < points.size(); ++i) {
    if (!is_right(points[i-2], points[i], points[i-1])) {
        points.erase(points.begin() + i - 1);
        i -= 2;
    }
}

Votieren

  • Aufgabe 4.1 - Gruppe 27 (Darwin, David, Ilayda)
  • Aufgabe 4.2 - Gruppe 26 (Tomer, Deniz, Elia)

Gibts Fragen Zu Blatt 04?

Sonst gerne auch gleich in der Übungsphase!
Wollt ihr meine Lösung?

Hinweise zu Blatt 05

Aufgabe 1:

Hinweise zu Blatt 05

Aufgabe 2:

  • Buildsysteme (🥳) - Buildsysteme (😫)
  • LEGT DIE RICHTIGEN .gitignore-FILES AN!!
  • Beispiel moderates Projekt
  • Beispiel komplexes Projekt

Praktische Übung

Übungsblatt 05 im Moodlekurs

Christian Heusel
c.heusel@stud.uni-heidelberg.de
https://discord.mathphys.info

IPK Tutorium 04

By Christian Heusel