groovy-lecture/ileyan/aufgaben.md

74 lines
3.4 KiB
Markdown
Raw Normal View History

2024-05-26 23:50:35 +02:00
## Leicht: Gegensätze ziehen sich an
Anna und Tom denken, sie sind ineinander verliebt. Nun wollen sie wissen, ob ihre Beziehung auch lange hält und sie wirklich Seelenverwandte sind. Das können sie nur rausfinden, wenn sie das in ihrem Dorf beliebte Blütenspiel spielen. Hierzu nimmt sich jeder der beiden eine Blume. Hat eine der Blumen eine ungerade Anzahl an Blüten und die andere eine gerade Anzahl, dann sind die beiden wirklich für einander bestimmt.
Schreibem sie ein Groovy Programm, dass die Anzahl der Blüten von beiden Blumen übergeben bekommt. Das Programm soll die beiden Zahlen miteinander vergleichen und je nachdem ausgeben, ob die beiden für einander bestimmt sind oder nicht.
### Lösung:
``` Groovy
def seelenverwandt(int ersteBlume, int zweiteBlume) {
if ((ersteBlume % 2) != (zweiteBlume % 2)) {
print "Ihr seid für einander bestimmt"!
}
else {
print "Die Beziehung hält kein Leben lang..."
}
}
```
## Mittel: Begrüßungsliste
Anna und Tom haben diesmal beschlossen, eine kleine Party zu veranstalten und möchten sichergehen, dass sie alle ihre eingeladenen Freunde auf der Begrüßungsliste haben. Schreiben sie ein Groovy Programm, dass den beiden dabei hilft, die Namen ihrer Freunde hizuzufügen und die Liste anzuzeigen. Hierbei soll es möglich sein sowohl einzelne, als auch mehrere Namen hinzuzufügen. Tipp: Benutzen sie für die Implementierung eine Liste, sehen sie jedoch davon ab die list.add() Methode zu benutzen. Groovy bietet hier einen komfortableren Weg.
### Lösung:
``` Groovy
class Begruessungsliste {
List<String> namen = []
def addNames(String... neueNamen) {
namen << neueNamen
neueNamen.each { println "${it} wurde zur Begrüßungsliste hinzugefügt."}
}
def showList() {
println "Aktuelle Begrüßungsliste: "
namen.each { println "- ${it}"}
}
}
```
## Schwer: Wetterprognose für die Party
Da Anna und Tom nun ihre Begrüßungsliste haben, möchten sie natürlich auch sicherstellen, dass das Wetter gut ist. Sie haben eine Liste von täglichen Wettervorhersagen für die nächste Woche und möchten die Tage mit Sonnenschein zählen, um zu entscheiden, welcher Tag am besten für die Party geeignet ist. Helfen sie den beiden, indem sie ein Groovy Programm schreiben, welche die Anzahl der Zahe mit Sonnenschein in der Wettervorhersage berechnet.
Das Programm soll:
1. Eine Liste von täglichen Wettervorhersagen entgegennehmen
Beispiel ["Sonnig", "Regen", "Wolken", "Sonnig", "Sonnig", "Regen", "Wolken"]
2. Die Anzahl der Tage mit Sonnenschein ("Sonnig") in der Liste zählen.
3. Die Anzahl der Tage mit Sonnenschein ausgeben.
Achten sie darauf, dass sie hier keine statische Methode benutzen, sondern eine Klasse schreiben, deren Konstruktor man die Liste übergibt und die dann den Rest übernimmt (sowohl die Auswertung, als auch die Ausgabe)
```Groovy
class Wetterprognose {
List<String> vorgersagen
W
Wetterprognose(List<String> vorhersagen) {
this.vorhersagen = vorhersagen
}
def countSunnyDays() {
int count = 0
vorhersagen.each {if {it == "Sonnig"} count++}
return count
}
def printSunnyDays() {
println "Anzahl der Tage mit Sonnenschein ${countSunnyDays(vorhersagen)}"
}
}
```