Coder Social home page Coder Social logo

oop-uebung01's Introduction

Übungsaufgabe zur Veranstaltung Objektorientiertes Programmieren im Bachelorstudiengang Wirtschaftsinformatik an der Hochschule Rosenheim.

Stack und Palindrom

In dieser Übung implementieren wir die Datenstruktur Stack (siehe Interface CharStack), und verwenden sie anschließend um Strings auf Palindromeigenschaft zu prüfen.

Vorarbeiten

  1. Erstellen Sie wieder einen persönlichen Fork des Projekts.

  2. Klonen Sie das Projekt lokal, in dem Sie in IntelliJ das Projekt von Git importieren lassen, oder "per Hand" in der Konsole: git clone https://github.com/IHR_BENUTZERNAME/example.git

  3. 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

Teilaufgabe 1

  1. Vervollständigen Sie die Klasse CharStackImpl in dem Sie die push, pop und size Methoden implementieren

    • push 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.
  2. 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 mit git add src/main/java/ueb01/CharStackImpl.java

  3. 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
      

Teilaufgabe 2

  1. 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 von chars zurück.
    • Verifizieren Sie, dass der Test testPalindrom() fehlerfrei abläuft.
  2. 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.

Bonusaufgabe (Optional)

  1. Mergen Sie nun Ihren Branch loesung in den master Branch:
    1. Checken Sie den master Branch aus
    2. Mergen Sie loesung
    3. Pushen Sie nun alles in Ihr Github Repository.
    4. Verifizieren Sie auf Github, dass Ihre Änderungen alle übernommen und dokumentiert sind.

Cheat-Sheet für Terminalanwender

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

oop-uebung01's People

Contributors

sikoried avatar gramsimamsi avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.