Übungsaufgabe zur Veranstaltung Programmieren 2 im Bachelorstudiengang Wirtschaftsinformatik an der Hochschule Rosenheim.
In dieser Übung implementieren wir die Datenstruktur Stack (siehe Interface CharStack
), und verwenden sie anschließend um Strings auf Palindromeigenschaft zu prüfen.
-
Erstellen Sie wieder einen persönlichen Fork des Projekts.
-
Klonen Sie das Projekt lokal, in dem Sie in IntelliJ das Projekt von Git importieren lassen, oder "per Hand" in der Konsole:
git clone htps:https://github.com/IHR_BENUTZERNAME/example.git
-
Erstellen Sie einen lokalen Branch
loesung
(oder einem anderen Namen Ihrer Wahl)- IntelliJ: Git Schaltfläche rechts unten -> "+ New Branch"
- Im Terminal (Schaltfläche links unten: "Console"/"Konsole"):
git checkout -b loesung
-
Vervollständigen Sie die Klasse
CharStackImpl
in dem Sie diepush
,pop
undsize
Methoden implementierenpush
legt ein Element oben auf den Stack,pop
entfernt das oberste; der Stack ist also FILO -- first in - last out, bzw. LIFO -- last in - first out.- Denken Sie auch an die benötigte Hilfsklasse, um die Elemente zu modellieren.
- Verifizieren Sie, dass der Test
CharStackTest
fehlerfrei abläuft.
-
Fügen Sie die geänderte Datei
CharStackImpl.java
sowie die Hilfsklasse Ihrem Commit hinzu, im IntelliJ mit
Rechtsklick -> Git -> Add, oder in der Konsole mitgit add src/main/java/ueb01/CharStackImpl.java
-
Committen und pushen Sie die Änderungen
- IntelliJ: VCS -> Commit Changes -> Commit and Push
- Terminal:
git commit -m "Ihre Commit-Nachricht" git push -u origin loesung
-
Implementieren Sie die statische Methode
Palindrom.istPalindrom()
, in der Sie nun den Stack verwenden, um beliebige Strings auf Palindrome zu testen.- Ein String ist ein Palindrom, wenn er vorwärts wie rückwärts die selbe Buchstabenfolge hat, also an der Wortmitte "gespiegelt" ist.
Wie kann dazu der Stack verwendet werden? - Die Methode
String.replaceAll
kann verwendet werden, um alle Leerzeichen zu entfernen. - Die Methode
String.toLowerCase
(bzw.toUpperCase
) wandelt alle Zeichen in Klein- bzw. Großbuchstaben um - Die Methode
String.toCharArray
gibt den String als Array vonchar
s zurück. - Verifizieren Sie, dass der Test
testPalindrom()
fehlerfrei abläuft.
- Ein String ist ein Palindrom, wenn er vorwärts wie rückwärts die selbe Buchstabenfolge hat, also an der Wortmitte "gespiegelt" ist.
-
Committen und pushen Sie die Änderungen.
Hinweis: Die kommenden Aufgaben werden Git immer in der selben Art verwenden. Gewöhnen Sie sich diesen Workflow an, wir werden ihn in den weiteren Übungsangaben nicht erneut ausformulieren.
- Mergen Sie nun Ihren Branch
loesung
in denmaster
Branch:- Checken Sie den
master
Branch aus - Mergen Sie
loesung
- Pushen Sie nun alles in Ihr Github Repository.
- Verifizieren Sie auf Github, dass Ihre Änderungen alle übernommen und dokumentiert sind.
- Checken Sie den
Lokales Klonen des Repositorys:
git clone https://github.com/IHR_USERNAME/uebung01
Dann im lokalen Verzeichnis:
git checkout -b loesung # checkout neuer Branch `loesung`
git status # was wurde verändert?
git add src/main/java/ueb01/CharStackImpl.java # staging
git commit -m "Stack fertig implementiert"
# ... weitere commits moeglich!
# lokalen `loesung` Branch pushen, `-u origin loesung`
# da dieser Branch remote noch nicht existiert!
git push -u origin loesung
# mergen:
git checkout master # auf `master` wechseln
git merge loesung # jetzt `loesung` -> `master`
git push # lokalen master pushen