Update of exercises
parent
796e2a7fbb
commit
ff0b3418b5
|
@ -1,6 +1,8 @@
|
|||
# Umgebung aufsetzen
|
||||
|
||||
**🎓 Benotetes Assignment 🎓**
|
||||
|
||||
📆 **Fällig: 26.03.2023** 📆
|
||||
|
||||
## Lernziel
|
||||
|
||||
|
@ -92,7 +94,7 @@ Connection to gitty.informatik.hs-mannheim.de closed.
|
|||
|
||||
### Repository
|
||||
|
||||
Alle Ihre Abgaben erfolgen über ein Ihnen zugeordnetes Repository. Dieses Repository ist bereits angelegt und sollte Ihnen 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.)
|
||||
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:
|
||||
|
||||
|
@ -149,4 +151,4 @@ Sie sehen jetzt folgende Dateien und Ordner in Ihrem Verzeichnis:
|
|||
|
||||
## Abgabe
|
||||
|
||||
Für dieses Assignment gibt es keine Abgabe.
|
||||
Für dieses Assignment gibt es __keine Abgabe__.
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
**🎓 Benotetes Assignment 🎓**
|
||||
|
||||
📆 **Fällig: 24.03.2023** 📆
|
||||
📆 **Fällig: 26.03.2023** 📆
|
||||
|
||||
## Lernziel
|
||||
|
||||
|
@ -51,12 +51,12 @@ In dieser Aufgabe geht es darum, ein einfaches Hello-World-Programm zu schreiben
|
|||
|
||||
## Abgabe
|
||||
|
||||
Alle Abgaben für die Vorlesung erfolgen über git.
|
||||
Alle Abgaben für die Vorlesung erfolgen über `git`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,37 @@
|
|||
# String in Großbuchstaben umwandeln
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
* Daten von der Kommandozeile lesen.
|
||||
* Einfache String-Operationen.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.grossmacher](../sources/src/main/java/pr2/auffrischung/grossmacher).
|
||||
|
||||
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.
|
||||
|
||||
```console
|
||||
> java Grossmacher "Hallo, dies ist ein Test"
|
||||
Ergebnis: HALLO, DIES IST EIN TEST
|
||||
Zeichen : 24
|
||||
```
|
||||
|
||||
|
||||
## 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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,32 @@
|
|||
# Labeled Break
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
Ein labeled break verwenden.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.labeled_break](../sources/src/main/java/pr2/auffrischung/labeled_break).
|
||||
|
||||
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`.
|
||||
|
||||
Verwenden Sie bitte ein **labeled break** für Ihre Implementierung.
|
||||
|
||||
|
||||
## 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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,37 @@
|
|||
# Passwortbewertung
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
Einfache String-Verarbeitung.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.password](../sources/src/main/java/pr2/auffrischung/password).
|
||||
|
||||
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:
|
||||
|
||||
* Das Passwort ist mindestens 8 Zeichen lang.
|
||||
* 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)
|
||||
|
||||
__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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,32 @@
|
|||
# printf mit Formatstring
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
Formatierung mit Formatstrings.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.printf](../sources/src/main/java/pr2/auffrischung/printf).
|
||||
|
||||
Schauen Sie sich die JavaDoc der Methode `printf` in der Klasse `PrintStream` an.
|
||||
|
||||
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)
|
||||
|
||||
__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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,32 @@
|
|||
# Maximum in einem Array suchen
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
Über Arrays iterieren.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.suchemax](../sources/src/main/java/pr2/auffrischung/suchemax).
|
||||
|
||||
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.
|
||||
|
||||
Testen Sie die Methode mit einigen Testzahlen.
|
||||
|
||||
|
||||
## 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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,32 @@
|
|||
# Taschenrechner
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
`case` verwenden.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.taschenrechner](../sources/src/main/java/pr2/auffrischung/taschenrechner).
|
||||
|
||||
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.
|
||||
|
||||
Testen Sie Ihre Klasse und Methode mit einigen einfachen Rechnungen.
|
||||
|
||||
|
||||
## 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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
|
@ -0,0 +1,33 @@
|
|||
# Quine
|
||||
|
||||
|
||||
|
||||
## Lernziel
|
||||
|
||||
Escape-Sequenzen und String-Verarbeitung.
|
||||
|
||||
## Aufgabe
|
||||
|
||||
Gehen Sie in das Paket [pr2.auffrischung.quine](../sources/src/main/java/pr2/auffrischung/quine).
|
||||
|
||||
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.
|
||||
|
||||
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)
|
||||
|
||||
__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`.
|
||||
|
||||
Hierzu gehen Sie wie folgt vor:
|
||||
|
||||
1. Öffnen Sie eine Kommandozeile (Terminal).
|
||||
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.
|
||||
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.
|
||||
|
15
readme.md
15
readme.md
|
@ -48,7 +48,14 @@ Die Bearbeitung der Aufgaben und das Erreichen einer hinreichend großen Zahl vo
|
|||
|
||||
Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md).
|
||||
|
||||
| # | Ausgabe | Thema | Fällig am 📆 |
|
||||
|----|------------|-------------------------------------------------|----------------|
|
||||
| 1. | 14.03.2023 | [Umgebung aufsetzen](Assignment_001/readme.md) | |
|
||||
| 2. | 14.03.2023 | [Erster Commit](Assignment_002/readme.md) | **24.03.2023** |
|
||||
| # | Ausgabe | Thema | Fällig am 📆 |
|
||||
|----|------------|-----------------------------------------------------------------|----------------|
|
||||
| 1. | 14.03.2023 | [Umgebung aufsetzen](Assignment_001/readme.md) | **26.03.2023** |
|
||||
| 2. | 14.03.2023 | [Erster Commit](Assignment_002/readme.md) | **26.03.2023** |
|
||||
| 3. | 14.03.2023 | [String in Großbuchstaben umwandeln](Assignment_003/readme.md) | |
|
||||
| 4. | 14.03.2023 | [Labeled Break](Assignment_004/readme.md) | |
|
||||
| 5. | 14.03.2023 | [Passwortbewertung](Assignment_005/readme.md) | |
|
||||
| 6. | 14.03.2023 | [printf mit Formatstring](Assignment_006/readme.md) | |
|
||||
| 7. | 14.03.2023 | [Maximum in einem Array suchen](Assignment_007/readme.md) | |
|
||||
| 8. | 14.03.2023 | [Taschenrechner](Assignment_008/readme.md) | |
|
||||
| 9. | 01.01.2023 | [Quine](Assignment_009/readme.md) | |
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
package pr2.auffrischung.grossmacher;
|
||||
|
||||
public class Grossmacher {
|
||||
|
||||
// TODO: main-Methode implementieren
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package pr2.auffrischung.labeled_break;
|
||||
|
||||
public class ArraySucher {
|
||||
|
||||
/**
|
||||
* Sucht das erste Element, dass nicht 0 ist.
|
||||
*
|
||||
* @param array das Array in dem gesucht werden soll
|
||||
* @return {@code true}, wenn ein Element gefunden wird,
|
||||
* andernfalls {@code false}.
|
||||
*/
|
||||
public boolean suche(int[][] array) {
|
||||
boolean found = false;
|
||||
|
||||
// TODO: Methodenrumpf schreiben
|
||||
|
||||
return found;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package pr2.auffrischung.password;
|
||||
|
||||
public class PasswortChecker {
|
||||
|
||||
|
||||
public static int checkPassword(String password) {
|
||||
int points = 0;
|
||||
|
||||
// TODO: Methode implementieren
|
||||
|
||||
return points;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(checkPassword("mutti"));
|
||||
System.out.println(checkPassword("Mutti"));
|
||||
System.out.println(checkPassword("mutti123"));
|
||||
System.out.println(checkPassword("Mutti123"));
|
||||
System.out.println(checkPassword("Mutti123!%"));
|
||||
System.out.println(checkPassword("1234"));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package pr2.auffrischung.printf;
|
||||
|
||||
public class DoubleFormatter {
|
||||
|
||||
public static void printDouble(double d) {
|
||||
// TODO: Wert ausgeben
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
printDouble(1.0);
|
||||
printDouble(10.1);
|
||||
printDouble(2.01);
|
||||
printDouble(2.001);
|
||||
printDouble(2.0001);
|
||||
printDouble(2.0004);
|
||||
printDouble(2.0005);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package pr2.auffrischung.suchemax;
|
||||
|
||||
public class GroessteZahl {
|
||||
|
||||
public int sucheMax(int[] zahlen) {
|
||||
int max = 0;
|
||||
|
||||
// TODO: Methode implementieren
|
||||
|
||||
return max;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
GroessteZahl g = new GroessteZahl();
|
||||
System.out.println(g.sucheMax(new int[] {1, 5, 8, 2, 0}));
|
||||
System.out.println(g.sucheMax(new int[] {-1, -5, -8, -2, -20}));
|
||||
System.out.println(g.sucheMax(new int[] {10000, -10000, 1, 2, 33}));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package pr2.auffrischung.taschenrechner;
|
||||
|
||||
public class Taschenrechner {
|
||||
|
||||
public double rechne(double o1, char op, double o2) {
|
||||
// TODO: Implementieren
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
Taschenrechner t = new Taschenrechner();
|
||||
System.out.println(t.rechne(1, '+', 2));
|
||||
System.out.println(t.rechne(1, '-', 2));
|
||||
System.out.println(t.rechne(2, '*', 2));
|
||||
System.out.println(t.rechne(4, '/', 2));
|
||||
System.out.println(t.rechne(2, '^', 32));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue