Update of exercises
parent
c6a06a4118
commit
fbbc847b6a
|
@ -1,154 +1,37 @@
|
||||||
# Umgebung aufsetzen
|
# String in Großbuchstaben umwandeln
|
||||||
|
|
||||||
**🎓 Benotetes Assignment 🎓**
|
|
||||||
|
|
||||||
📆 **Fällig: 26.03.2023** 📆
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Umgebung für die Vorlesung aufsetzen.
|
* Daten von der Kommandozeile lesen.
|
||||||
|
* Einfache String-Operationen.
|
||||||
|
|
||||||
## Beschreibung
|
## Aufgabe
|
||||||
|
|
||||||
In diesem Assignment werden Sie die notwendige Tool-Umgebung für die Bearbeitung der Aufgaben aus der Vorlesung aufsetzen.
|
Gehen Sie in das Paket [pr2.auffrischung.grossmacher](../sources/src/main/java/pr2/auffrischung/grossmacher).
|
||||||
|
|
||||||
Die Abgabe der Aufgaben und die Tests sind automatisiert, sodass Sie auf jeden Fall die passenden Werkzeuge installieren müssen, damit Sie die Übungen durchführen können. Bitte halten Sie sich an die folgenden Anweisungen und nehmen Sie keine "Abkürzungen".
|
Schreiben Sie bitte ein Programm mit der Hauptklasse `Grossmacher`, das einen Text als Parameter auf der Kommandozeile nimmt, diesen in Großbuchstaben umwandelt und dann, zusammen mit der enthaltenen Anzahl von Zeichen, wieder auf der Konsole ausgibt.
|
||||||
|
|
||||||
## Softwareausstattung
|
|
||||||
|
|
||||||
### Linux
|
|
||||||
|
|
||||||
Wenn Sie einen eigenen Rechner für die Veranstaltung verwenden wollen -- was dringend zu empfehlen ist, installieren Sie bitte (direkt auf dem Gerät oder in einer VM) ein 64-Bit Ubuntu Linux (oder ein anderes Linux, das auf der glibc basiert) in einer aktuellen Version (z.B. 22.04). Eine Anleitung und Unterstützung finden Sie [hier](https://github.com/informatik-mannheim/linux-hsma/blob/master/doc/readme.md).
|
|
||||||
|
|
||||||
Bitte versuchen Sie nicht, die Übungen ohne Linux zu lösen, es wartet eine Welt der Frustration und des Schmerzes 😭 auf Sie, durch die schon viele andere gegangen sind, die diesen einen wichtigen Tipp ignoriert haben.
|
|
||||||
|
|
||||||
### Programme
|
|
||||||
|
|
||||||
Nachdem Sie Linux installiert haben, fügen Sie die folgende Software in mindestens der angegebenen Version hinzu:
|
|
||||||
|
|
||||||
* **Java JDK 18**<br>`sudo apt install openjdk-18-jdk openjdk-18-source openjdk-18-doc`
|
|
||||||
* **Git** und Git-Frontends<br>`sudo apt install git meld git-cola`
|
|
||||||
* **Maven 3.6 oder neuer**<br>`sudo apt install maven`
|
|
||||||
* **Eclipse**<br>Von der [Webseite](https://www.eclipse.org/downloads/) herunterladen und installieren. Bitte verwenden Sie die Version **Eclipse IDE for Java Developers**
|
|
||||||
|
|
||||||
## Aufsetzen der Arbeitsumgebung
|
|
||||||
|
|
||||||
### Setup von Git
|
|
||||||
|
|
||||||
Setzen Sie bei Git die notwendigen Nutzerinformationen, über die passenden Kommandos:
|
|
||||||
|
|
||||||
```console
|
```console
|
||||||
$ git config --global user.name "Mona Lisa"
|
> java Grossmacher "Hallo, dies ist ein Test"
|
||||||
$ git config --global user.email "mona.lisa@louvre.fr"
|
Ergebnis: HALLO, DIES IST EIN TEST
|
||||||
|
Zeichen : 24
|
||||||
```
|
```
|
||||||
|
|
||||||
_Benutzen Sie bitte Ihren Namen und Ihre HS-Mannheim-E-Mail-Adresse. Jede Abgabe als Mona Lisa wird mit Punktabzug bestraft_!
|
|
||||||
|
|
||||||
### ssh-Key erzeugen
|
## Abgabe (optional)
|
||||||
|
|
||||||
Damit Sie Ihre Abgaben automatisiert durchführen können und nicht immer wieder Ihren Benutzernamen und Ihr Passwort eingeben müssen, erzeugen Sie sich einen SSH-Key. `hugo` müssen Sie durch Ihren wirklichen Benutzernamen ersetzen,
|
__Sie müssen keine Lösung für diese Aufgabe einreichen, können es aber, wenn Sie wollen.__
|
||||||
|
|
||||||
```console
|
Wenn Sie die Aufgabe abgeben wollen, folgen Sie der unten stehenden Anleitung.
|
||||||
$ mkdir -p ~/.ssh
|
|
||||||
$ chmod og-rwx ~/.ssh
|
|
||||||
$ ssh-keygen
|
|
||||||
Generating public/private rsa key pair.
|
|
||||||
Enter file in which to save the key (/home/hugo/.ssh/id_rsa): /home/hugo/.ssh/pr2
|
|
||||||
Enter passphrase (empty for no passphrase):
|
|
||||||
Enter same passphrase again:
|
|
||||||
Your identification has been saved in /home/hugo/.ssh/pr2
|
|
||||||
Your public key has been saved in /home/hugo/.ssh/pr2.pub
|
|
||||||
The key fingerprint is:
|
|
||||||
SHA256:jnxRiAreSWFBlHP3zOzggy9YIhd8T+A5AFBA2f8ioKQ hugo@meinrechnername
|
|
||||||
The key's randomart image is:
|
|
||||||
+---[RSA 3072]----+
|
|
||||||
|+==+*o |
|
|
||||||
| . o+.o... |
|
|
||||||
| ..o=.+.=. |
|
|
||||||
| + +o+= o.= |
|
|
||||||
|+ o +o.*So |
|
|
||||||
|E ..ooo++.. |
|
|
||||||
| o.++.o. |
|
|
||||||
| . ... |
|
|
||||||
| . |
|
|
||||||
+----[SHA256]-----+
|
|
||||||
```
|
|
||||||
|
|
||||||
Den ssh-Key müssen Sie dann auf dem Git-Server hinterlegen.
|
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
||||||
|
|
||||||
1. Öffnen Sie die URL `https://gitty.informatik.hs-mannheim.de` und melden Sie sich mit Ihrem Hochschulaccount an
|
Hierzu gehen Sie wie folgt vor:
|
||||||
2. Gehen Sie auf Ihren Nutzer, dann auf "Settings" und danach auch "SSH/GPG Keys".
|
|
||||||
3. Fügen Sie über den Knopf _Add Key_ den **Public Key** des soeben erzeugten Schlüssels hinzu.
|
|
||||||
4. Testen Sie den Schlüssel:
|
|
||||||
* Falls Sie nicht an der Hochschule sind, bauen Sie eine VPN-Verbindung auf, damit Sie sich im Netz der Hochschule befinden
|
|
||||||
* Öffnen Sie eine Konsole
|
|
||||||
* Geben Sie `ssh gitea@gitty.informatik.hs-mannheim.de` ein.
|
|
||||||
* Sie sollten die Meldung bekommen, mit welchem Schlüssel Sie sich authentifiziert haben.
|
|
||||||
|
|
||||||
```console
|
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||||
$ ssh gitea@gitty.informatik.hs-mannheim.de
|
2. Gehen Sie in Ihr Working Directory.
|
||||||
Hi there, hugo! You've successfully authenticated with the key named hugo@meinrechnername, but Gitea does not provide shell access.
|
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
||||||
If this is unexpected, please log in with password and setup Gitea under another user.
|
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
||||||
Connection to gitty.informatik.hs-mannheim.de closed.
|
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
||||||
```
|
|
||||||
|
|
||||||
### Repository
|
|
||||||
|
|
||||||
Alle Ihre Abgaben erfolgen über ein Ihnen zugeordnetes Repository. Dieses Repository werden anhand der Gruppen angelegt, in die Sie sich eingetragen haben. Sobald es für Sie erzeugt wurde, sollte es Ihnen nach dem Login angezeigt werden, wenn Sie in die [Organisation pr2-lecture](https://gitty.informatik.hs-mannheim.de/pr2-lecture) gehen. (Sollten Sie einen `Fehler 404` bekommen, haben Sie vergessen sich auf der Webseite anzumelden.)
|
|
||||||
|
|
||||||
Gehen Sie auf Ihre Repository und kopieren Sie sich die "Clone URL" für ssh:
|
|
||||||
|
|
||||||
<img src="img/gitty_clone.png" style="width: 30%">
|
|
||||||
|
|
||||||
### Working Directory
|
|
||||||
|
|
||||||
Suchen Sie sich auf Ihrem Rechner eine Stelle, an der Sie in Zukunft alle Quelltexte und Aufgaben für PR2 bearbeiten wollen (__Working Directory__). Wir gehen im Folgenden davon aus, dass Sie einfach innerhalb von `~/Documents` arbeiten. Verwenden Sie keinen Dropbox-, Google- oder OneDrive-Ordner, weil diese häufig zu Problemen im Zusammenhang mit Git führen.
|
|
||||||
|
|
||||||
Öffnen Sie das Working Directory in einer Konsole und clonen Sie Ihr Git-Repository mit der URL, die Sie im vorhergehenden Schritt ausgelesen haben. Hier als Beispiel für `team-01`.
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ git clone gitea@gitty.informatik.hs-mannheim.de:pr2-lecture/team-01.git
|
|
||||||
$ cd team-01/
|
|
||||||
```
|
|
||||||
|
|
||||||
In dem Verzeichnis sollten bereits ein paar Dateien vorhanden sein, insbesondere ein Ordner `bin`.
|
|
||||||
|
|
||||||
### Aktuelle Aufgaben holen
|
|
||||||
|
|
||||||
Im Ordner `bin` Ihres Working Directory finden Sie zwei Skripte:
|
|
||||||
|
|
||||||
* `update.sh`: Aktualisiert Ihr Verzeichnis und holt die aktuellen Aufgaben.
|
|
||||||
* `submit.sh`: Reicht Ihre Lösungen ein.
|
|
||||||
|
|
||||||
Holen Sie nun die aktuellen Aufgaben, indem Sie das `update.sh`-Skript ausführen:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ bin/update.sh
|
|
||||||
Cloning into '.assignments'...
|
|
||||||
remote: Enumerating objects: 142, done.
|
|
||||||
remote: Counting objects: 100% (15/15), done.
|
|
||||||
remote: Compressing objects: 100% (12/12), done.
|
|
||||||
remote: Total 142 (delta 0), reused 0 (delta 0), pack-reused 127
|
|
||||||
Receiving objects: 100% (142/142), 56.99 KiB | 3.00 MiB/s, done.
|
|
||||||
Resolving deltas: 100% (59/59), done.
|
|
||||||
---------------------------------------------------------------
|
|
||||||
Hole neue Aufgaben und Quelltexte
|
|
||||||
---------------------------------------------------------------
|
|
||||||
From gitty.informatik.hs-mannheim.de:pr2-lecture/assignments
|
|
||||||
* branch master -> FETCH_HEAD
|
|
||||||
Already up to date.
|
|
||||||
```
|
|
||||||
|
|
||||||
Sie sehen jetzt folgende Dateien und Ordner in Ihrem Verzeichnis:
|
|
||||||
|
|
||||||
* `.assignments` - Arbeitsverzeichnis für das Laden der Aufgaben
|
|
||||||
* `.git` - Arbeitsverzeichnis für GIT
|
|
||||||
* `.gitignore` - Konfiguration für GIT
|
|
||||||
* `bin` - Skripte
|
|
||||||
* `Assignment_xx` - Einzelnen Aufgaben
|
|
||||||
* `README.md` - Überblick über alle Aufgaben
|
|
||||||
* `sources` - Quelltexte
|
|
||||||
|
|
||||||
## Abgabe
|
|
||||||
|
|
||||||
Für dieses Assignment gibt es __keine Abgabe__.
|
|
|
@ -1,55 +1,25 @@
|
||||||
# Erster Commit
|
# Labeled Break
|
||||||
|
|
||||||
**🎓 Benotetes Assignment 🎓**
|
|
||||||
|
|
||||||
📆 **Fällig: 26.03.2023** 📆
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Einen ersten Commit erfolgreich einchecken, pushen und testen.
|
Ein labeled break verwenden.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Es ist wichtig, dass Sie diese Aufgabe erfolgreich abschließen. Der Ablauf ist die Vorlage für alle weiteren Übungen, welche Sie fristgerecht einreichen müssen. Diese Aufgabe ist zwar trivial, zeigt Ihnen aber den generellen Ablauf.
|
Gehen Sie in das Paket [pr2.auffrischung.labeled_break](../sources/src/main/java/pr2/auffrischung/labeled_break).
|
||||||
|
|
||||||
Lesen Sie deswegen dieses Assignment sehr sorgfältig und führen Sie die beschriebenen Schritte durch.
|
Schreiben Sie eine Methode `suche`, die ein zweidimensionales `int`-Array übergeben bekommt und das erste Element sucht, das keine `0` ist. Wenn ein solches gefunden wird, soll die Methode `true` zurückgeben, andernfalls `false`.
|
||||||
|
|
||||||
Die folgenden Schritte beziehen sich auf Ihr persönliches Repository, dass Sie im vorhergehenden Assignment angelegt und konfiguriert haben. Sie arbeiten in Ihrer lokalen Kopie, dem __Working Directory__ und übertragen Ihre Ergebnisse am Ende in das Repository auf dem zentralen Git-Server.
|
Verwenden Sie bitte ein **labeled break** für Ihre Implementierung.
|
||||||
|
|
||||||
Wie Sie die Umgebung aufsetzen, wurde im vorhergehenden Assignment erläutert. Sorgen Sie dafür, dass Sie den aktuellen Stand der Aufgaben haben, indem Sie in Ihrem Working Directory `bin/update.sh` aufrufen.
|
|
||||||
|
|
||||||
### Eclipse einrichten
|
|
||||||
|
|
||||||
Hier erhalten Sie eine Anleitung, wie Sie Eclipse für die Bearbeitung der Aufgaben einrichten.
|
|
||||||
|
|
||||||
1. Legen Sie einen neuen Workspace für die Vorlesung PR2 an. Es empfiehlt sich, diesen in einem Unterverzeichnis, z.B. `eclipse-workspace` in Ihrem Working Directory anzulegen. Allerdings sollten Sie das Verzeichnis dann über die `.gitignore`-Datei von der Versionsverwaltung ausschließen.
|
|
||||||
2. Erzeugen Sie mit `File` -> `New` -> `Java Project` ein neues Java-Projekt.
|
|
||||||
* Geben Sie dem Projekt einen beliebigen Namen, z.B. "pr2"
|
|
||||||
* _Entfernen_ Sie das Häkchen für `Use Default Location` und tragen Sie den Pfad zu dem `sources`-Ordner in Ihrem Working Directory ein.
|
|
||||||
* _Entfernen_ Sie das Häkchen für `Create module-info.java file`.
|
|
||||||
* Drücken Sie auf `Finish`.
|
|
||||||
|
|
||||||
Wenn alles richtig funktioniert hat, findet Eclipse die Datei `.classpath` im `sources`-Verzeichnis und macht automatisch die notwendigen Einstellungen. Überprüfen Sie aber die folgenden Punkte trotzdem und passen Sie sie gegebenenfalls an.
|
|
||||||
|
|
||||||
1. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Libraries`. Selektieren Sie den `Classpath`.
|
|
||||||
* Gehen Sie auf den Knopf `Add Library` und wählen Sie `JUnit` aus. Im Folgenden Dialog selektieren Sie die Version 5 von JUnit.
|
|
||||||
* Gehen Sie auf den Knopf `Add JARs` und wählen Sie aus dem `lib`-Ordner das JAR mit dem Namen `game-framework-1.0.jar` aus.
|
|
||||||
* Entfernen Sie, falls vorhanden, ein JAR namens `solutions-1.0...`.
|
|
||||||
2. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Source`.
|
|
||||||
* Stellen Sie sicher, dass der Ordner `src/main/java` eingetragen ist.
|
|
||||||
* Stellen Sie sicher, dass der Eintrag `Default output folder` `.../target/classes` entspricht.
|
|
||||||
|
|
||||||
### HelloWorld programmieren
|
|
||||||
|
|
||||||
In dieser Aufgabe geht es darum, ein einfaches Hello-World-Programm zu schreiben und dann einzureichen.
|
|
||||||
|
|
||||||
1. Bitte gehen Sie in das Paket [pr2.bootstrap.hello](../sources/src/main/java/pr2/bootstrap/hello/)
|
|
||||||
2. Schauen Sie sich die Klassen `HelloWorld` und `Greeter` an.
|
|
||||||
3. Vervollständigen Sie den Code, achten Sie dabei insbesondere auf die `// TODO:`-Kommentare.
|
|
||||||
4. Testen Sie Ihr Programm und geben es danach ab.
|
|
||||||
|
|
||||||
|
|
||||||
## Abgabe
|
## Abgabe (optional)
|
||||||
|
|
||||||
|
__Sie müssen keine Lösung für diese Aufgabe einreichen, können es aber, wenn Sie wollen.__
|
||||||
|
|
||||||
|
Wenn Sie die Aufgabe abgeben wollen, folgen Sie der unten stehenden Anleitung.
|
||||||
|
|
||||||
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,23 @@
|
||||||
# String in Großbuchstaben umwandeln
|
# Passwortbewertung
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
* Daten von der Kommandozeile lesen.
|
Einfache String-Verarbeitung.
|
||||||
* Einfache String-Operationen.
|
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.grossmacher](../sources/src/main/java/pr2/auffrischung/grossmacher).
|
Gehen Sie in das Paket [pr2.auffrischung.password](../sources/src/main/java/pr2/auffrischung/password).
|
||||||
|
|
||||||
Schreiben Sie bitte ein Programm mit der Hauptklasse `Grossmacher`, das einen Text als Parameter auf der Kommandozeile nimmt, diesen in Großbuchstaben umwandelt und dann, zusammen mit der enthaltenen Anzahl von Zeichen, wieder auf der Konsole ausgibt.
|
Schreiben Sie eine Klasse `PasswortChecker` mit einer Methode `checkPassword`, die die Qualität von Passwörtern bewertet. Die Methode vergibt Punkte für bestimmte Qualitätskriterien des Passworts. Es gibt jeweils einen Punkt für:
|
||||||
|
|
||||||
```console
|
* Das Passwort ist mindestens 8 Zeichen lang.
|
||||||
> java Grossmacher "Hallo, dies ist ein Test"
|
* Das Passwort enthält Groß- und Kleinbuchstaben.
|
||||||
Ergebnis: HALLO, DIES IST EIN TEST
|
* Das Passwort enthält Buchstaben und Zahlen.
|
||||||
Zeichen : 24
|
* Das Passwort enthält mindestens eines der Sonderzeichen `!"()%`
|
||||||
```
|
|
||||||
|
Testen Sie die Methode mit verschiedenen Passwörtern.
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe (optional)
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# Labeled Break
|
# printf mit Formatstring
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Ein labeled break verwenden.
|
Formatierung mit Formatstrings.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.labeled_break](../sources/src/main/java/pr2/auffrischung/labeled_break).
|
Gehen Sie in das Paket [pr2.auffrischung.printf](../sources/src/main/java/pr2/auffrischung/printf).
|
||||||
|
|
||||||
Schreiben Sie eine Methode `suche`, die ein zweidimensionales `int`-Array übergeben bekommt und das erste Element sucht, das keine `0` ist. Wenn ein solches gefunden wird, soll die Methode `true` zurückgeben, andernfalls `false`.
|
Schauen Sie sich die JavaDoc der Methode `printf` in der Klasse `PrintStream` an.
|
||||||
|
|
||||||
Verwenden Sie bitte ein **labeled break** für Ihre Implementierung.
|
Schreiben Sie eine Methode `printDouble`, die eine beliebige double-Zahl mit immer genau drei Nachkommastellen ausgibt. Testen Sie die Methode mit einigen Testzahlen.
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe (optional)
|
||||||
|
|
|
@ -1,23 +1,18 @@
|
||||||
# Passwortbewertung
|
# Maximum in einem Array suchen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Einfache String-Verarbeitung.
|
Über Arrays iterieren.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.password](../sources/src/main/java/pr2/auffrischung/password).
|
Gehen Sie in das Paket [pr2.auffrischung.suchemax](../sources/src/main/java/pr2/auffrischung/suchemax).
|
||||||
|
|
||||||
Schreiben Sie eine Klasse `PasswortChecker` mit einer Methode `checkPassword`, die die Qualität von Passwörtern bewertet. Die Methode vergibt Punkte für bestimmte Qualitätskriterien des Passworts. Es gibt jeweils einen Punkt für:
|
Schreiben Sie bitte eine Klasse `GroessteZahl` mit der Methode `sucheMax`, die ein `int`-Array übergeben bekommt und die größte Zahl aus diesem heraussucht und zurückgibt.
|
||||||
|
|
||||||
* Das Passwort ist mindestens 8 Zeichen lang.
|
Testen Sie die Methode mit einigen Testzahlen.
|
||||||
* Das Passwort enthält Groß- und Kleinbuchstaben.
|
|
||||||
* Das Passwort enthält Buchstaben und Zahlen.
|
|
||||||
* Das Passwort enthält mindestens eines der Sonderzeichen `!"()%`
|
|
||||||
|
|
||||||
Testen Sie die Methode mit verschiedenen Passwörtern.
|
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe (optional)
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# printf mit Formatstring
|
# Taschenrechner
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Formatierung mit Formatstrings.
|
`case` verwenden.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.printf](../sources/src/main/java/pr2/auffrischung/printf).
|
Gehen Sie in das Paket [pr2.auffrischung.taschenrechner](../sources/src/main/java/pr2/auffrischung/taschenrechner).
|
||||||
|
|
||||||
Schauen Sie sich die JavaDoc der Methode `printf` in der Klasse `PrintStream` an.
|
Schreiben Sie eine Klasse `Taschenrechner`, die genau eine Methode namens `rechne` hat. Die Methode nimmt zwei `double`-Werte, die die Operanden darstellen und ein `char`, das den Operator symbolisiert. Die Methode soll Addition (`+`), Subtraktion (`-`), Multiplikation (`*`), Division (`/`) und Potenzieren (`^`) unterstützen. Geben Sie das Ergebnis der Rechnung als `double`-Wert zurück und behandeln Sie den Fall, dass ein ungültiger Operator übergeben wird, indem Sie `NaN` (Not a Number) zurückgeben.
|
||||||
|
|
||||||
Schreiben Sie eine Methode `printDouble`, die eine beliebige double-Zahl mit immer genau drei Nachkommastellen ausgibt. Testen Sie die Methode mit einigen Testzahlen.
|
Testen Sie Ihre Klasse und Methode mit einigen einfachen Rechnungen.
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe (optional)
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# Maximum in einem Array suchen
|
# Quine
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Über Arrays iterieren.
|
Escape-Sequenzen und String-Verarbeitung.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.suchemax](../sources/src/main/java/pr2/auffrischung/suchemax).
|
Gehen Sie in das Paket [pr2.auffrischung.quine](../sources/src/main/java/pr2/auffrischung/quine).
|
||||||
|
|
||||||
Schreiben Sie bitte eine Klasse `GroessteZahl` mit der Methode `sucheMax`, die ein `int`-Array übergeben bekommt und die größte Zahl aus diesem heraussucht und zurückgibt.
|
Schreiben Sie ein Programm, das sich selbst auf der Console ausgibt. Das Programm soll nicht seinen Quelltext lesen und ausgeben, sondern seinen eigenen Quellcode enthalten.
|
||||||
|
|
||||||
Testen Sie die Methode mit einigen Testzahlen.
|
Hinweis: Die Lösung wird deutlich einfacher, wenn Sie `printf` und `String.replace` verwenden. Diese Aufgabe ist relativ komplex, vergeuden Sie also nicht zu viel Zeit und geben Sie auf, wenn Sie die Lösung nicht finden.
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe (optional)
|
||||||
|
@ -30,3 +30,4 @@ Hierzu gehen Sie wie folgt vor:
|
||||||
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
||||||
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
||||||
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
||||||
|
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
|
@ -1,32 +1,154 @@
|
||||||
# Taschenrechner
|
# Umgebung aufsetzen
|
||||||
|
|
||||||
|
**🎓 Benotetes Assignment 🎓**
|
||||||
|
|
||||||
|
📆 **Fällig: 26.03.2023** 📆
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
`case` verwenden.
|
Umgebung für die Vorlesung aufsetzen.
|
||||||
|
|
||||||
## Aufgabe
|
## Beschreibung
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.taschenrechner](../sources/src/main/java/pr2/auffrischung/taschenrechner).
|
In diesem Assignment werden Sie die notwendige Tool-Umgebung für die Bearbeitung der Aufgaben aus der Vorlesung aufsetzen.
|
||||||
|
|
||||||
Schreiben Sie eine Klasse `Taschenrechner`, die genau eine Methode namens `rechne` hat. Die Methode nimmt zwei `double`-Werte, die die Operanden darstellen und ein `char`, das den Operator symbolisiert. Die Methode soll Addition (`+`), Subtraktion (`-`), Multiplikation (`*`), Division (`/`) und Potenzieren (`^`) unterstützen. Geben Sie das Ergebnis der Rechnung als `double`-Wert zurück und behandeln Sie den Fall, dass ein ungültiger Operator übergeben wird, indem Sie `NaN` (Not a Number) zurückgeben.
|
Die Abgabe der Aufgaben und die Tests sind automatisiert, sodass Sie auf jeden Fall die passenden Werkzeuge installieren müssen, damit Sie die Übungen durchführen können. Bitte halten Sie sich an die folgenden Anweisungen und nehmen Sie keine "Abkürzungen".
|
||||||
|
|
||||||
Testen Sie Ihre Klasse und Methode mit einigen einfachen Rechnungen.
|
## Softwareausstattung
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
## Abgabe (optional)
|
Wenn Sie einen eigenen Rechner für die Veranstaltung verwenden wollen -- was dringend zu empfehlen ist, installieren Sie bitte (direkt auf dem Gerät oder in einer VM) ein 64-Bit Ubuntu Linux (oder ein anderes Linux, das auf der glibc basiert) in einer aktuellen Version (z.B. 22.04). Eine Anleitung und Unterstützung finden Sie [hier](https://github.com/informatik-mannheim/linux-hsma/blob/master/doc/readme.md).
|
||||||
|
|
||||||
__Sie müssen keine Lösung für diese Aufgabe einreichen, können es aber, wenn Sie wollen.__
|
Bitte versuchen Sie nicht, die Übungen ohne Linux zu lösen, es wartet eine Welt der Frustration und des Schmerzes 😭 auf Sie, durch die schon viele andere gegangen sind, die diesen einen wichtigen Tipp ignoriert haben.
|
||||||
|
|
||||||
Wenn Sie die Aufgabe abgeben wollen, folgen Sie der unten stehenden Anleitung.
|
### Programme
|
||||||
|
|
||||||
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
Nachdem Sie Linux installiert haben, fügen Sie die folgende Software in mindestens der angegebenen Version hinzu:
|
||||||
|
|
||||||
Hierzu gehen Sie wie folgt vor:
|
* **Java JDK 18**<br>`sudo apt install openjdk-18-jdk openjdk-18-source openjdk-18-doc`
|
||||||
|
* **Git** und Git-Frontends<br>`sudo apt install git meld git-cola`
|
||||||
|
* **Maven 3.6 oder neuer**<br>`sudo apt install maven`
|
||||||
|
* **Eclipse**<br>Von der [Webseite](https://www.eclipse.org/downloads/) herunterladen und installieren. Bitte verwenden Sie die Version **Eclipse IDE for Java Developers**
|
||||||
|
|
||||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
## Aufsetzen der Arbeitsumgebung
|
||||||
2. Gehen Sie in Ihr Working Directory.
|
|
||||||
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
### Setup von Git
|
||||||
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
|
||||||
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
Setzen Sie bei Git die notwendigen Nutzerinformationen, über die passenden Kommandos:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ git config --global user.name "Mona Lisa"
|
||||||
|
$ git config --global user.email "mona.lisa@louvre.fr"
|
||||||
|
```
|
||||||
|
|
||||||
|
_Benutzen Sie bitte Ihren Namen und Ihre HS-Mannheim-E-Mail-Adresse. Jede Abgabe als Mona Lisa wird mit Punktabzug bestraft_!
|
||||||
|
|
||||||
|
### ssh-Key erzeugen
|
||||||
|
|
||||||
|
Damit Sie Ihre Abgaben automatisiert durchführen können und nicht immer wieder Ihren Benutzernamen und Ihr Passwort eingeben müssen, erzeugen Sie sich einen SSH-Key. `hugo` müssen Sie durch Ihren wirklichen Benutzernamen ersetzen,
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ mkdir -p ~/.ssh
|
||||||
|
$ chmod og-rwx ~/.ssh
|
||||||
|
$ ssh-keygen
|
||||||
|
Generating public/private rsa key pair.
|
||||||
|
Enter file in which to save the key (/home/hugo/.ssh/id_rsa): /home/hugo/.ssh/pr2
|
||||||
|
Enter passphrase (empty for no passphrase):
|
||||||
|
Enter same passphrase again:
|
||||||
|
Your identification has been saved in /home/hugo/.ssh/pr2
|
||||||
|
Your public key has been saved in /home/hugo/.ssh/pr2.pub
|
||||||
|
The key fingerprint is:
|
||||||
|
SHA256:jnxRiAreSWFBlHP3zOzggy9YIhd8T+A5AFBA2f8ioKQ hugo@meinrechnername
|
||||||
|
The key's randomart image is:
|
||||||
|
+---[RSA 3072]----+
|
||||||
|
|+==+*o |
|
||||||
|
| . o+.o... |
|
||||||
|
| ..o=.+.=. |
|
||||||
|
| + +o+= o.= |
|
||||||
|
|+ o +o.*So |
|
||||||
|
|E ..ooo++.. |
|
||||||
|
| o.++.o. |
|
||||||
|
| . ... |
|
||||||
|
| . |
|
||||||
|
+----[SHA256]-----+
|
||||||
|
```
|
||||||
|
|
||||||
|
Den ssh-Key müssen Sie dann auf dem Git-Server hinterlegen.
|
||||||
|
|
||||||
|
1. Öffnen Sie die URL `https://gitty.informatik.hs-mannheim.de` und melden Sie sich mit Ihrem Hochschulaccount an
|
||||||
|
2. Gehen Sie auf Ihren Nutzer, dann auf "Settings" und danach auch "SSH/GPG Keys".
|
||||||
|
3. Fügen Sie über den Knopf _Add Key_ den **Public Key** des soeben erzeugten Schlüssels hinzu.
|
||||||
|
4. Testen Sie den Schlüssel:
|
||||||
|
* Falls Sie nicht an der Hochschule sind, bauen Sie eine VPN-Verbindung auf, damit Sie sich im Netz der Hochschule befinden
|
||||||
|
* Öffnen Sie eine Konsole
|
||||||
|
* Geben Sie `ssh gitea@gitty.informatik.hs-mannheim.de` ein.
|
||||||
|
* Sie sollten die Meldung bekommen, mit welchem Schlüssel Sie sich authentifiziert haben.
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ ssh gitea@gitty.informatik.hs-mannheim.de
|
||||||
|
Hi there, hugo! You've successfully authenticated with the key named hugo@meinrechnername, but Gitea does not provide shell access.
|
||||||
|
If this is unexpected, please log in with password and setup Gitea under another user.
|
||||||
|
Connection to gitty.informatik.hs-mannheim.de closed.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Repository
|
||||||
|
|
||||||
|
Alle Ihre Abgaben erfolgen über ein Ihnen zugeordnetes Repository. Dieses Repository werden anhand der Gruppen angelegt, in die Sie sich eingetragen haben. Sobald es für Sie erzeugt wurde, sollte es Ihnen nach dem Login angezeigt werden, wenn Sie in die [Organisation pr2-lecture](https://gitty.informatik.hs-mannheim.de/pr2-lecture) gehen. (Sollten Sie einen `Fehler 404` bekommen, haben Sie vergessen sich auf der Webseite anzumelden.)
|
||||||
|
|
||||||
|
Gehen Sie auf Ihre Repository und kopieren Sie sich die "Clone URL" für ssh:
|
||||||
|
|
||||||
|
<img src="img/gitty_clone.png" style="width: 30%">
|
||||||
|
|
||||||
|
### Working Directory
|
||||||
|
|
||||||
|
Suchen Sie sich auf Ihrem Rechner eine Stelle, an der Sie in Zukunft alle Quelltexte und Aufgaben für PR2 bearbeiten wollen (__Working Directory__). Wir gehen im Folgenden davon aus, dass Sie einfach innerhalb von `~/Documents` arbeiten. Verwenden Sie keinen Dropbox-, Google- oder OneDrive-Ordner, weil diese häufig zu Problemen im Zusammenhang mit Git führen.
|
||||||
|
|
||||||
|
Öffnen Sie das Working Directory in einer Konsole und clonen Sie Ihr Git-Repository mit der URL, die Sie im vorhergehenden Schritt ausgelesen haben. Hier als Beispiel für `team-01`.
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ git clone gitea@gitty.informatik.hs-mannheim.de:pr2-lecture/team-01.git
|
||||||
|
$ cd team-01/
|
||||||
|
```
|
||||||
|
|
||||||
|
In dem Verzeichnis sollten bereits ein paar Dateien vorhanden sein, insbesondere ein Ordner `bin`.
|
||||||
|
|
||||||
|
### Aktuelle Aufgaben holen
|
||||||
|
|
||||||
|
Im Ordner `bin` Ihres Working Directory finden Sie zwei Skripte:
|
||||||
|
|
||||||
|
* `update.sh`: Aktualisiert Ihr Verzeichnis und holt die aktuellen Aufgaben.
|
||||||
|
* `submit.sh`: Reicht Ihre Lösungen ein.
|
||||||
|
|
||||||
|
Holen Sie nun die aktuellen Aufgaben, indem Sie das `update.sh`-Skript ausführen:
|
||||||
|
|
||||||
|
```console
|
||||||
|
$ bin/update.sh
|
||||||
|
Cloning into '.assignments'...
|
||||||
|
remote: Enumerating objects: 142, done.
|
||||||
|
remote: Counting objects: 100% (15/15), done.
|
||||||
|
remote: Compressing objects: 100% (12/12), done.
|
||||||
|
remote: Total 142 (delta 0), reused 0 (delta 0), pack-reused 127
|
||||||
|
Receiving objects: 100% (142/142), 56.99 KiB | 3.00 MiB/s, done.
|
||||||
|
Resolving deltas: 100% (59/59), done.
|
||||||
|
---------------------------------------------------------------
|
||||||
|
Hole neue Aufgaben und Quelltexte
|
||||||
|
---------------------------------------------------------------
|
||||||
|
From gitty.informatik.hs-mannheim.de:pr2-lecture/assignments
|
||||||
|
* branch master -> FETCH_HEAD
|
||||||
|
Already up to date.
|
||||||
|
```
|
||||||
|
|
||||||
|
Sie sehen jetzt folgende Dateien und Ordner in Ihrem Verzeichnis:
|
||||||
|
|
||||||
|
* `.assignments` - Arbeitsverzeichnis für das Laden der Aufgaben
|
||||||
|
* `.git` - Arbeitsverzeichnis für GIT
|
||||||
|
* `.gitignore` - Konfiguration für GIT
|
||||||
|
* `bin` - Skripte
|
||||||
|
* `Assignment_xx` - Einzelnen Aufgaben
|
||||||
|
* `README.md` - Überblick über alle Aufgaben
|
||||||
|
* `sources` - Quelltexte
|
||||||
|
|
||||||
|
## Abgabe
|
||||||
|
|
||||||
|
Für dieses Assignment gibt es __keine Abgabe__.
|
|
@ -1,25 +1,55 @@
|
||||||
# Quine
|
# Erster Commit
|
||||||
|
|
||||||
|
**🎓 Benotetes Assignment 🎓**
|
||||||
|
|
||||||
|
📆 **Fällig: 26.03.2023** 📆
|
||||||
|
|
||||||
## Lernziel
|
## Lernziel
|
||||||
|
|
||||||
Escape-Sequenzen und String-Verarbeitung.
|
Einen ersten Commit erfolgreich einchecken, pushen und testen.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.auffrischung.quine](../sources/src/main/java/pr2/auffrischung/quine).
|
Es ist wichtig, dass Sie diese Aufgabe erfolgreich abschließen. Der Ablauf ist die Vorlage für alle weiteren Übungen, welche Sie fristgerecht einreichen müssen. Diese Aufgabe ist zwar trivial, zeigt Ihnen aber den generellen Ablauf.
|
||||||
|
|
||||||
Schreiben Sie ein Programm, das sich selbst auf der Console ausgibt. Das Programm soll nicht seinen Quelltext lesen und ausgeben, sondern seinen eigenen Quellcode enthalten.
|
Lesen Sie deswegen dieses Assignment sehr sorgfältig und führen Sie die beschriebenen Schritte durch.
|
||||||
|
|
||||||
Hinweis: Die Lösung wird deutlich einfacher, wenn Sie `printf` und `String.replace` verwenden. Diese Aufgabe ist relativ komplex, vergeuden Sie also nicht zu viel Zeit und geben Sie auf, wenn Sie die Lösung nicht finden.
|
Die folgenden Schritte beziehen sich auf Ihr persönliches Repository, dass Sie im vorhergehenden Assignment angelegt und konfiguriert haben. Sie arbeiten in Ihrer lokalen Kopie, dem __Working Directory__ und übertragen Ihre Ergebnisse am Ende in das Repository auf dem zentralen Git-Server.
|
||||||
|
|
||||||
|
Wie Sie die Umgebung aufsetzen, wurde im vorhergehenden Assignment erläutert. Sorgen Sie dafür, dass Sie den aktuellen Stand der Aufgaben haben, indem Sie in Ihrem Working Directory `bin/update.sh` aufrufen.
|
||||||
|
|
||||||
|
### Eclipse einrichten
|
||||||
|
|
||||||
|
Hier erhalten Sie eine Anleitung, wie Sie Eclipse für die Bearbeitung der Aufgaben einrichten.
|
||||||
|
|
||||||
|
1. Legen Sie einen neuen Workspace für die Vorlesung PR2 an. Es empfiehlt sich, diesen in einem Unterverzeichnis, z.B. `eclipse-workspace` in Ihrem Working Directory anzulegen. Allerdings sollten Sie das Verzeichnis dann über die `.gitignore`-Datei von der Versionsverwaltung ausschließen.
|
||||||
|
2. Erzeugen Sie mit `File` -> `New` -> `Java Project` ein neues Java-Projekt.
|
||||||
|
* Geben Sie dem Projekt einen beliebigen Namen, z.B. "pr2"
|
||||||
|
* _Entfernen_ Sie das Häkchen für `Use Default Location` und tragen Sie den Pfad zu dem `sources`-Ordner in Ihrem Working Directory ein.
|
||||||
|
* _Entfernen_ Sie das Häkchen für `Create module-info.java file`.
|
||||||
|
* Drücken Sie auf `Finish`.
|
||||||
|
|
||||||
|
Wenn alles richtig funktioniert hat, findet Eclipse die Datei `.classpath` im `sources`-Verzeichnis und macht automatisch die notwendigen Einstellungen. Überprüfen Sie aber die folgenden Punkte trotzdem und passen Sie sie gegebenenfalls an.
|
||||||
|
|
||||||
|
1. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Libraries`. Selektieren Sie den `Classpath`.
|
||||||
|
* Gehen Sie auf den Knopf `Add Library` und wählen Sie `JUnit` aus. Im Folgenden Dialog selektieren Sie die Version 5 von JUnit.
|
||||||
|
* Gehen Sie auf den Knopf `Add JARs` und wählen Sie aus dem `lib`-Ordner das JAR mit dem Namen `game-framework-1.0.jar` aus.
|
||||||
|
* Entfernen Sie, falls vorhanden, ein JAR namens `solutions-1.0...`.
|
||||||
|
2. Gehen Sie auf die Projekteigenschaften (`Properties`), wählen Sie `Java Build Path` und dann die Registrierkarte `Source`.
|
||||||
|
* Stellen Sie sicher, dass der Ordner `src/main/java` eingetragen ist.
|
||||||
|
* Stellen Sie sicher, dass der Eintrag `Default output folder` `.../target/classes` entspricht.
|
||||||
|
|
||||||
|
### HelloWorld programmieren
|
||||||
|
|
||||||
|
In dieser Aufgabe geht es darum, ein einfaches Hello-World-Programm zu schreiben und dann einzureichen.
|
||||||
|
|
||||||
|
1. Bitte gehen Sie in das Paket [pr2.bootstrap.hello](../sources/src/main/java/pr2/bootstrap/hello/)
|
||||||
|
2. Schauen Sie sich die Klassen `HelloWorld` und `Greeter` an.
|
||||||
|
3. Vervollständigen Sie den Code, achten Sie dabei insbesondere auf die `// TODO:`-Kommentare.
|
||||||
|
4. Testen Sie Ihr Programm und geben es danach ab.
|
||||||
|
|
||||||
|
|
||||||
## Abgabe (optional)
|
## Abgabe
|
||||||
|
|
||||||
__Sie müssen keine Lösung für diese Aufgabe einreichen, können es aber, wenn Sie wollen.__
|
|
||||||
|
|
||||||
Wenn Sie die Aufgabe abgeben wollen, folgen Sie der unten stehenden Anleitung.
|
|
||||||
|
|
||||||
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
||||||
|
|
||||||
|
@ -30,4 +60,3 @@ Hierzu gehen Sie wie folgt vor:
|
||||||
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
3. Rufen Sie mit `bin/submit.sh` das Skript auf, das die Lösungen testet und kompiliert. Wenn Maven eine Fehlermeldung zeigt, beheben Sie diese zuerst, bevor Sie mit dem nächsten Schritt fortfahren.
|
||||||
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
4. Wenn Sie Meldung "✅ Projekt gebaut" bekommen, checken (comitten) Sie Ihre Änderungen in `git` ein.
|
||||||
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
5. Rufen Sie mit `bin/submit.sh` erneut das Skript auf. Wenn alles klappt, bekommen Sie die Anzeige "✅ Aktuelle Lösungen eingereicht" und Ihre Lösung ist im System angekommen.
|
||||||
|
|
18
readme.md
18
readme.md
|
@ -50,12 +50,12 @@ Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstat
|
||||||
|
|
||||||
| # | Ausgabe | Thema | Fällig am 📆 |
|
| # | Ausgabe | Thema | Fällig am 📆 |
|
||||||
|----|------------|-----------------------------------------------------------------|----------------|
|
|----|------------|-----------------------------------------------------------------|----------------|
|
||||||
| 1. | 14.03.2023 | [Umgebung aufsetzen](Assignment_001/readme.md) | **26.03.2023** |
|
| 1. | 14.03.2023 | [String in Großbuchstaben umwandeln](Assignment_001/readme.md) | |
|
||||||
| 2. | 14.03.2023 | [Erster Commit](Assignment_002/readme.md) | **26.03.2023** |
|
| 2. | 14.03.2023 | [Labeled Break](Assignment_002/readme.md) | |
|
||||||
| 3. | 14.03.2023 | [String in Großbuchstaben umwandeln](Assignment_003/readme.md) | |
|
| 3. | 14.03.2023 | [Passwortbewertung](Assignment_003/readme.md) | |
|
||||||
| 4. | 14.03.2023 | [Labeled Break](Assignment_004/readme.md) | |
|
| 4. | 14.03.2023 | [printf mit Formatstring](Assignment_004/readme.md) | |
|
||||||
| 5. | 14.03.2023 | [Passwortbewertung](Assignment_005/readme.md) | |
|
| 5. | 14.03.2023 | [Maximum in einem Array suchen](Assignment_005/readme.md) | |
|
||||||
| 6. | 14.03.2023 | [printf mit Formatstring](Assignment_006/readme.md) | |
|
| 6. | 14.03.2023 | [Taschenrechner](Assignment_006/readme.md) | |
|
||||||
| 7. | 14.03.2023 | [Maximum in einem Array suchen](Assignment_007/readme.md) | |
|
| 7. | 14.03.2023 | [Quine](Assignment_007/readme.md) | |
|
||||||
| 8. | 14.03.2023 | [Taschenrechner](Assignment_008/readme.md) | |
|
| 8. | 14.03.2023 | [Umgebung aufsetzen](Assignment_008/readme.md) | **26.03.2023** |
|
||||||
| 9. | 14.03.2023 | [Quine](Assignment_009/readme.md) | |
|
| 9. | 14.03.2023 | [Erster Commit](Assignment_009/readme.md) | **26.03.2023** |
|
||||||
|
|
Loading…
Reference in New Issue