Praktikum 2

Da wir inhaltlich noch nicht allzu weit vorangeschritten sind, dient dieses Praktikum dazu, sich mit der Entwicklungsumgebung (IDE) und grundlegenden C++-Konzepten vertraut zu machen.

Bisher haben wir die folgenden Themen behandelt:

  • Textein-/ausgabe
  • Debugger bedienen
  • Arten von Zahlen (Datentypen)
  • Bedingungen
  • foreach-Schleifen

Das Thema Referenzen lassen wir erstmal aus, bis wir bei Funktionen ankommen.

Hinweis: Falls Ihnen die Befehle nicht mehr einfallen schauen Sie bei Vorlesung 2 in das Quellcode-Archiv

Aufgabe 1

Entpacken Sie das Projekt-Archiv des Praktikums in einen Ordner. In dem Archiv ist ein Ordner .vscode. Dieser konfiguriert das Projekt, damit der Debugger richtig funktioniert.

Zudem enthält das Archiv eine leere aufgabe1.cpp. Laden Sie das Projekt in Ihrer IDE und öffnen Sie die aufgabe1.cpp.

Als erste Aufgabe sollen Sie den Nutzer befragen.

Erfragen Sie die folgenden Dinge auf der Konsole und speichern Sie es in geeigneten Variablen ab. Wissen Sie noch, wie die verschiedenen Ganzzahltypen in C++ hießen? Erinnern Sie sich noch, wie auf der Konsole ein Zeilenumbruch ging?

  • Den Namen
  • Das Geburtsjahr
  • Die Größe in Metern (m)

Geben Sie es im Anschluss folgende Details geeignet auf der Konsole aus:

  • Den Namen
  • Das Alter (berechnet auf dem Geburtsjahr)
  • Die Größe in cm

Sie können hier auch mal den Debugger ausprobieren. Setzen Sie einen Breakpoint auf die Ausgabe des Namens und schauen Sie sich die Variablenwerte an.

Aufgabe 2

Erstellen Sie für jede der Aufgaben eine neue C++-Datei und fügen Sie diese als neue Anwendung zu der CMakeLists.txt hinzu:

add_executable(name_der_anwendung
    name_der_anwendung.cpp
)

Ersetzen Sie name_der_anwendung.cpp mit etwas geeignetem, z.B. aufgabe2. Denken Sie auch daran das Startprojekt auf aufgabe2 zu ändern.

Fragen Sie den Nutzer nach einer Zahl (Datentyp: Ganzzahl).

Prüfen Sie mittels if-Bedingung die nachfolgenden Eigenschaften der Zahl und geben Sie einen entsprechenden Text auf der Konsole aus.

  1. Geben Sie einen Text aus, wenn die Zahl ungerade ist.
  2. Geben Sie einen Text abhängig von folgenden Bedinungen aus (if-else):
    • Positiv
    • Ist Null
    • Negativ
  3. Geben Sie einen Text aus, wenn die Zahl ohne Rest durch 3 teilbar ist
  4. Geben Sie einen Text abhängig von folgenden Bedingungen aus (if-else):
    • Die Zahl hat eine Stelle
    • Die Zahl hat zwei Stellen
  5. Geben Sie einen Text aus, wenn die Zahl 42 ist.

Aufgabe 3

Legen Sie wieder eine neue Datei an und passen Sie die CMakeLists.txt (ab jetzt CMake-Datei genannt) entsprechend an.

Nachfolgendes soll wieder als Konsolenanwendung umgesetzt werden:

  1. Fragen Sie den Nutzer nach einem Namen.
  2. Begrüßen Sie den Nutzer (Hallo [NAME])
  3. Wenn der Name Ihrem Vornamen entspricht, geben Sie etwas derart Der Name ist aber schön! aus.
  4. Fügen Sie dies direkt vor der Ausgabe von Hallo [NAME] ein:

Da Namen mit einem Großbuchstaben anfangen, soll das Programm nun mit einer Fehlermeldung abgebrochen werden, wenn der Name mit einem Kleinbuchstaben beginnt.

Da im ASCII-Code die Buchstaben direkt hintereinander angeordnet sind, kann direkt mit größer bzw. kleiner als und einem Character-Literal verglichen werden:

if (ch >= 'A' && ch <= 'F') {
    // Das Zeichen ist A, B, C, D, E oder F
}

// Alternativ (geschachtelt)
if (ch >= 'A') {
    if (ch <= 'F') {
        // Das Zeichen ist A, B, C, D, E oder F
    }
}

Ich habe in der Vorlesung vergessen über das Verketten von Bedingungen zu sprechen. Dies geht mit && (und) bzw. || (oder). Alternativ können Sie natürlich auch schachteln, also in dem Block der if-Bedingung einfach eine weitere schreiben.

Prüfen Sie nun also, ob die Eingabe leer ist (Methode empty() des Strings) oder das erste Zeichen der Eingabe ein Kleinbuchstabe ist. Sollte dies der Fall sein, geben Sie auf der Konsole eine Fehlermeldung aus und machen Sie im Anschluss ein return 1;. Ein Wert ungleich 0 signalisiert einen Fehler.

Aufgabe 4

Zum Abschluss arbeiten wir noch mit Vektoren (neue C++-Datei erstellen).

Um Zugriff auf die Vector-Klasse zu bekommen, benötigen Sie #include <vector> in Ihrer Datei.

Hier ist die Referenz zur Vector-Klasse: https://www.cplusplus.com/reference/vector/vector/

  1. Fragen den Nutzer 3x auf der Konsole nach Namen von Freunden und speichern Sie diese in einem Vector ab.
  2. Durchlaufen Sie nun den Vector und geben Sie für jeden Eintrag den folgenden Text aus: Freund N: NAME. Ersetzen Sie N mit einer laufenden Nummer (beginnend bei 1) und NAME mit dem Namen aus dem Array. Tipp: Für die laufende Nummer können Sie ein pre-increment verwenden.
  3. Erstellen Sie eine Kopie des Vectors.
  4. Geben Sie die Größe des Vectors aus.
  5. Entfernen Sie den letzten Eintrag aus dem Vector. Prüfen Sie dies auch im Debugger nach.
  6. Rufen Sie die Methode clear() vom Vektor auf, um diesen komplett zu leeren. Prüfen Sie dies auch im Debugger.
Zuletzt geändert: Dienstag, 30. März 2021, 07:44