Menu Close

Programmieren, Algorithmen und Datenstrukturen 2 (Vorlesung 2)

Klausurhistogramm

  • Notenschnitt gemäß Professor Skroch akzeptabel
  • Verhältnismäßig wenig durchgefallen ( nur 1/3 )

Testate

  • 6 Termine
x-Wochey-Woche
04. Apr11. Apr
18. Apr25. Apr
02. Mai16. Mai  ( nicht 9.5 )
23. Mai  ( nicht 16.5 )30. Mai
06. Jun13. Mai
20. Jun27. Jun

Wiederholung PAD 1

  • Compiler fängt ganz links oben an zu kompilieren
  • Java läuft in einer virtuellen Maschinen und ist deshalb flexibel (Interpreter -> Maschinencode)
  • C++ Programme von Linux lassen sich unter Windows nicht ausführen
  • .h Dateien sind Header-Dateien
  • Variablen initialisieren nicht vergessen
  • Was ist ein Objekt? – „Objekt einer Klasse im Speicherbereich mit Namen“
  • Typen
    • Bekannte Typen: String, int, bool, char, double
    • Strings lassen sich über + verbinden
    • Benutzerdefinierte Typen zu finden: In der Library „std“ (Portabilität)
    • Selbst erstellte Typen durch Header exportieren
  • Befehle/Operatoren
    • Stream extraction-Operator = „<<„
    • cin = „Objekt vom Typ istream“
    • „=“ steht für Zuweisung, „==“ steht für Vergleich
    • Operatoren-Liste im Buch markieren
  • Konstruktionsprimitive ( hiermit lässt sich jedes Programm realisieren ):
    • Sequenz (hintereinander ausführen)
    • Iteration (Schleife mit Rücksprüngen in Abhängigkeit zu bestimmten Werten)
    • Selektion ( Bedingungen mit true / false und Verzweigung )
  • Unzulässige Namen:
    • „latest news“
    • „2_for_1_offer“
    • „correct?“
  • Zu vermeidende Namen:
    • „string“
    • „_this_is_okay“
  • Vektoren
    • Dynamischer Container in den man beliebig Elemente eines vordefinierten Typs hinzufügen und entfernen kann
    • Zusammenfassen von Elementen gleichen Typs
    • Standardisiert für C++
    • sort ( a.begin(), a.end() ) – vordefinierte Sortierfunktion ( a = Vektor )
  • Referenzen
    • Wenn keine & am Ende des Typs bei der Argumentenliste einer Funktion stehen, werden nur Repliken bearbeitet
    • Auch mit Zeigern möglich
    • Nachteil von Calls mit &:
      • Im Funktionsaufruf kann nicht gesehen werden, ob getauscht wird
  • Fehler
    • 90% der Zeit des Programmierens betreffen Fehlerbehandlung
    • try, throw und catch zur Behandlung
    • Verwenden von „exception“, „runtime_error“ oder eigenen Typ
    • Vor- und Nachbedingungen prüfen
    • Beispiel:
      • Fehler = „v[v.size()]=x“  // Out of Range
      • Besser = „v[v.size()-1]=x“
  • Funktionen
    • Verschachtelte Funktionen sind in C++ verboten
    • Funktionen in Klassen heißen Methoden
    • Eigene Klassen in Funktionen sind möglich
    • Faustregel für Funktionen sollten nicht länger als 60 Zeilen sein
  • Klassen
    • Klassen in Klassen sind möglich
    • Enumeratoren sind Klassen
  • Gruppenarbeit
    • Wichtigste 3 Statements für Funktionen herausarbeiten:
      1. Initialisieren Sie immer Ihre Variablen.
      2. Argumente werden standardmäßig als Kopien übergeben, const Referenzen sind auch möglich, Referenzen (ohne const) sollten nur bei guten Gründen verwendet  werden.
      3. Vermeiden Sie Konstruktionen, in denen die Auswertungsreihenfolge undefiniert ist.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index