Update klausuraufgaben.md

main
Ileyan Al Jaaf 2024-06-05 21:17:10 +02:00
parent b6ea16bfa0
commit ea6c8052c1
1 changed files with 38 additions and 35 deletions

View File

@ -12,13 +12,13 @@ Wie kann man in Groovy sicherstellen, dass in folgendem Codebeispiel keine NullP
```Groovy ```Groovy
class Person { class Person {
String name def name
Address address def address
} }
class Address { class Address {
String city def city
String street def street
} }
def person = new Person(name: "Thomas Smits") def person = new Person(name: "Thomas Smits")
@ -55,13 +55,22 @@ println geradeZahlen
## Klassen und Closures: ## Klassen und Closures:
Schreiben sie eine simple Klasse **Person**, die als Attribute den Namen und das Alter einer Person erhält. Erstellen sie im nächsten Schritt folgende drei Objekte dieser Klasse und packen sie diese in eine Liste: Gegeben sei eine simple Klasse **Person**, die als Attribute den Namen und das Alter einer Person erhält.
```Groovy
class Person{
def name
def alter
}
```
Kopieren sie den obrigen Code, erstellen sie folgende drei Objekte dieser Klasse und packen sie diese in eine Liste:
1. Max, 12 Jahre 1. Max, 12 Jahre
2. Karl, 40 Jahre 2. Karl, 40 Jahre
3. Laura, 23 Jahre 3. Laura, 23 Jahre
Wenden sie nun zwei Closures auf diese Liste an, um alle Personen, die volljährig sind in eine Liste zu schreiben. Die Namen sollen diesmal aber groß geschrieben sein. Ihre Ausgabe sollte also wie folgt aussehen: Erweitern sie die Klasse nicht, sondern nehmen Sie sie genauso wie sie ist. Wenden sie nun zwei Closures auf diese Liste an, um alle Personen, die volljährig sind in eine Liste zu schreiben. Die Namen sollen diesmal aber groß geschrieben sein. Ihre Ausgabe sollte also wie folgt aussehen:
```Groovy ```Groovy
[KARL, LAURA] [KARL, LAURA]
@ -75,16 +84,11 @@ Die **collect()** Methode wird verwendet, um eine Liste oder eine Sammlung zu tr
```Groovy ```Groovy
class Person { class Person {
String name def name
int alter def alter
public Person(String name, int alter){
this.name = name
this.alter = alter
} }
}
def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23)] def personen = [new Person(name: "Max", alter: 12), new Person(name: "Karl", alter: 40), new Person(name: "Laura", alter: 23)]
def volljaehrig = { person -> person.alter > 17} def volljaehrig = { person -> person.alter > 17}
def erwachsenePersonen = personen.findAll(volljaehrig) def erwachsenePersonen = personen.findAll(volljaehrig)
@ -104,13 +108,8 @@ Gegeben sei folgender Groovy-Code:
```Groovy ```Groovy
class Person { class Person {
String name def name
int alter def alter
public Person(String name, int alter){
this.name = name
this.alter = alter
}
def printIfAdult() { def printIfAdult() {
if (this.alter > 17) { if (this.alter > 17) {
@ -119,26 +118,30 @@ class Person {
} }
} }
def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23), new Person("Ali", 15)] def personen = //Hier die Liste einfügen
for (person in personen) { for (person in personen) {
person.printIfAdult() person.printIfAdult()
} }
``` ```
Schreiben sie den Code so um, sodass anstelle der for-in-Schleife ein passender Operator benutzt wird. Erstellen Sie an der angegebenen Stelle eine Liste von folgenden Personen mit folgenden Attributen:
| Name | Alter |
| ----- | ----- |
| Max | 12 |
| Karl | 40 |
| Laura | 23 |
| Ali | 15 |
Schreiben sie nun den Code so um, sodass anstelle der for-in-Schleife ein passender Operator benutzt wird.
#### Lösung: #### Lösung:
```Groovy ```Groovy
class Person { class Person {
String name def name
int alter def alter
public Person(String name, int alter){
this.name = name
this.alter = alter
}
def printIfAdult() { def printIfAdult() {
if (this.alter > 17) { if (this.alter > 17) {
@ -147,7 +150,7 @@ class Person {
} }
} }
def personen = [new Person("Max", 12), new Person("Karl", 40), new Person("Laura", 23), new Person("Ali", 15)] def personen = [new Person(name: "Max", alter: 12), new Person(name: "Karl", alter: 40), new Person(name: "Laura", alter: 23), new Person(name: "Ali", alter: 15)]
// Hier den Spread-Operator benutzen // Hier den Spread-Operator benutzen
personen*.printIfAdult() personen*.printIfAdult()
@ -193,7 +196,7 @@ def str = "GGRROOOOVVYY IISSTT CCOOOOLL!!"
Benutzen sie eine for-in Schleife, um auf diesem String folgende Ausgabe zu erzeugen, definieren sie hierbei **keinen** neuen String. Benutzen sie eine for-in Schleife, um auf diesem String folgende Ausgabe zu erzeugen, definieren sie hierbei **keinen** neuen String.
```Groovy ```Groovy
"GROOVY IST COOL!" "groovy ist cool!"
``` ```
#### Lösung: #### Lösung:
@ -205,7 +208,7 @@ for(i in 0..str.length()) {
if (i % 2 == 0) { if (i % 2 == 0) {
continue continue
} }
print str[i] print str[i].toLowerCase()
} }
``` ```
@ -222,7 +225,7 @@ for(int i = 0; i < str.length(); i++){
if (i % 2 == 0) { if (i % 2 == 0) {
continue continue
} }
print str[i] print str[i].toLowerCase()
} }
``` ```
@ -240,7 +243,7 @@ while (i < str.length()) {
i++ i++
continue continue
} }
print str[i] print str[i].toLowerCase()
i++ i++
} }
``` ```