Praktikumsanleitung
Abschlussbedingungen
Praktikum 3
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
)
Hinweis: Falls Ihnen die Befehle nicht mehr einfallen schauen Sie bei Vorlesung 2 in das Quellcode-Archiv
Aufgabe 1
Zum warm werden behandeln wir nochmal if-Bedingungen.
Insbesondere wiederholen wir nochmal &&
und ||
.
- Fragen Sie den Nutzer nach einer Zahl
- Geben Sie einen geeigneten Text aus, wenn die Zahl positiv und ungerade ist
- Geben Sie einen geeigneten Text aus, Wenn die Zahl null oder eins ist
Aufgabe 2
Wir haben in der Vorlesung über Über- und Unterlauf (overflow und underflow) gesprochen.
- Was versteht man unter diesen Begriffen?
- In welchen Situationen kann ein Überlauf auftreten?
- Warum sollten Über- und Unterläufe vermieden werden?
Aufgabe 3
Machen Sie sich nochmal mit der Syntax von Funktionen und Lambda-Ausdrücken vertraut.
Wissen Sie noch die Bedeutung von const
und int
vs. int&
?
- Schreiben Sie eine Funktion:
- Der Funktion wird ein
vector<int>
übergeben - Die Anzahl an Elementen mit Wert 0 soll gezählt werden
- Die Anzahl wird zurückgegeben
- Der Funktion wird ein
- Beschriften Sie die Funktion mit einem geeigneten Dokumentationskommentar (Stichwort: javadoc)
- Rufen Sie die beschriebene Funktion von der
main
-Funktion aus auf und geben Sie den Wert auf der Konsole aus. - Zählen Sie die Anzahl an Elementen im Vektor mittels des Algorithmus
std::count
(Header<algorithm>
nicht vergessen) - (*) Anstatt 0 soll der Wert als zusätzlicher Parameter übergeben werden. Wie das mit Lambda-Funktionen geht haben wir noch nicht behandelt. Beschränken Sie sich daher auf Ihre Funktion.
Aufgabe 4
- Schreiben Sie eine Funktion:
- Der Funktion wird ein
vector<string>
übergeben - Die Anzahl an Zeichenketten mit Großbuchstaben an erster Stelle sollen gezählt werden (siehe dazu auch Praktikum 2, Aufgabe 3)
- Die Anzahl wird zurückgegeben
- Der Funktion wird ein
- Beschriften Sie die Funktion mit einem geeigneten Dokumentationskommentar (Stichwort: javadoc)
- Rufen Sie die beschriebene Funktion von der
main
-Funktion aus auf und geben Sie den Wert auf der Konsole aus. - Zählen Sie die Anzahl an Elementen im Vektor mittels eines geeigneten Algorithmus’ und Lambda-Ausdruck. Siehe dazu auch https://www.cplusplus.com/reference/algorithm/. Tipp: Es ist die Variante von
count
, die eine Prädikatfunktion akzeptiert. - (*) Das Verhalten der Funktion aus 1. soll mit einem zusätzlichen
bool gross
-Parameter geändert werden können: Wenntrue
ist das Verhalten wie oben. Wennfalse
werden stattdessen die Kleinbuchstaben gezählt.
Aufgabe 5
- Schreiben Sie eine Funktion:
- Der Funktion wird ein
vector<int>
übergeben - Alle Elemente im Vektor werden negiert
- Es gibt keine Rückgabe. Der Vektor wird direkt modifiziert.
- Der Funktion wird ein
- Beschriften Sie die Funktion mit einem geeigneten Dokumentationskommentar (Stichwort: javadoc)
- Rufen Sie die beschriebene Funktion von der
main
-Funktion aus auf und geben Sie den Wert auf der Konsole aus. - (*) Verwenden Sie stattdessen
std::transform
Aufgabe 6 (*)
Machen Sie sich mit einigen anderen Algorithmen vertraut:
- Der Algorithmus
std::fill(begin, end, wert)
ersetzt alle Elemente im Bereich mitwert
. Befüllen Sie einen Vector mit 42. - Der Algorithmus
std::any_of(begin, end, pred)
akzeptiert ein Prädikat und gibt einenbool
zurück. Sie kann also inif
-Bedingungen verwenden werden. Die Rückgabe isttrue
wenn mindestens ein Element das Prädikat erfüllt. Schreiben Sie ein Programm, dass einen Text ausgibt, wenn mindestens ein Element in einem Vektor gerade ist.
Zuletzt geändert: Dienstag, 13. April 2021, 02:10